我从 http://cektkp.com/twittermarquee/twitmarquee.js 获得了代码使用 Twitter 风格的代码:
<script type=\"text/javascript\">
//<![CDATA[
var page={};
$(function() {new FrontPage().init()});
//]]>
</script>
我知道有一个匿名 JavaScript 函数可以创建 FrontPage 类的实例并对其进行初始化。并且 var page={};
是一个对象文字,但是在这里将其定义为脚本标记的第一行是否正确?
我在 JS 教程中发现了这一点,你不应该在语句的开头使用对象文字。这将导致错误或行为不符合您的预期,因为 { 将被解释为 block 的开头。
此外,在我的 javascript 文件中,我有以下代码:
Drupal.behaviors.stocksTicker = {
attach: function( context, settings ) {
page.trendDescriptions = {};
loadTrendDescriptions();
}
}
.
.
.
var processSummizeInternal = function (B) {
var J = page.trendDescriptions[page.query];
.
.
.
function loadTrendDescriptions() {
$("#trends a").each(function () {
var A = $(this);
var C = A.parent().find("em");
if (C.length) {
var B = A.text();
var D = C.text().replace(new RegExp(B.replace(/([^\w])/gi, "\\$1"), "gi"), "<strong>" + B + "</strong>");
var E = A.attr("title").length ? A.attr("title") : A.attr("name");page.trendDescriptions[E] = [B, D]
}
})
}
我无法理解js如何访问这个变量page.
?任何其他文件中的其他任何地方都没有对 page
的其他引用。
最佳答案
Is it correct to define it here as first line of the script tag?
block 引用>You should not use an object literal at the beginning of a statement. This will lead to an error or not behave as you expect, because the
{
will be interpreted as the beginning of a block.这个引文的目标结构是这样的
{init: function(){/* do something*/}}.init();
语句实际上以对象字面量开头。很奇怪吗?是的,无论如何你都不会使用这样的代码。就您而言,
var page = {};
对象字面量位于赋值语句内。这里没有问题,完全没问题。
<小时/>I'm not able to understand how is js accessing this variable
page.
?然后它会自动引用一个全局变量。实际上,您甚至在第一个代码片段中定义了这样的一个,并将其初始化为一个空对象。您包含的外部js然后定义了
trendDescriptions
并愉快地访问了它几次。
关于javascript - page.trendDescriptions = {}; 怎么样?在给定的代码段中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688011/