javascript - page.trendDescriptions = {}; 怎么样?在给定的代码段中工作?

标签 javascript jquery

我从 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?

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/

相关文章:

javascript - 如何包含文件并将其内容包装在 `pre` 标记中

javascript - 将 $q 集成到作用域中?

javascript - 如何更改 Jssor Image Slider 的尺寸而不失去其仅在 iPhone 设备上的响应性质、图像纵横比等?

php - 在搜索栏中禁用以前搜索过的术语建议

javascript - 如何从嵌入标签中获取 svg 元素?

javascript - 网址末尾的广告 anchor

javascript - jQuery 在 JS 文件中不可用

php - 将数据从 Ajax 传递到 PHP

javascript - Velocity.js 在动画完成后删除样式属性

javascript - 更改特定 DOM 元素的 src