4

我正在查看这段代码:

$(function(){
    var $sidescroll = (function() {
        init = function() {
            //STUFF
        };
        return { init : init };    //What does this do?
    })();
    $sidescroll.init();
});

退货声明是什么意思?我以前没有在 return 语句中看到花括号,甚至不确定 'init : init' 是做什么的。

4

2 回答 2

11

花括号在 javascript 中意味着两件事:

  1. 对象字面量

您可能已经看过第二个——在其他语言中也称为“字典”、键值对、关联数组等:

myDict = { a: "apple", b: "banana" };

当我们说

return { a: "apple" };

和说一样

myDict = { a: "apple" };
return myDict;

在这种情况下,“令人困惑”的是(1)键和值相同/具有相同的字符表示,以及(2)值不是普通的字符串或变量,而是一个函数。也就是说,访问对象/字典的键“init”会给你一个函数,你可以用().

于 2013-07-07T21:25:14.957 回答
5

它返回一个新的 Object 实例,其中 init 字段设置为 init 变量的值。这称为“对象文字”

IE

return { init : init }; 

是相同的

var o = new Object();
o.init = init;
return o;
于 2013-07-07T21:24:34.607 回答