我正在查看此代码:
$(function(){
var $sidescroll = (function() {
init = function() {
//STUFF
};
return { init : init }; //What does this do?
})();
$sidescroll.init();
});
return语句是什么意思?我以前没有在return语句中看过大括号,甚至不确定'init:init'是什么。
答案 0 :(得分:9)
curly括号在javascript中意味着两件事:
您可能已经看过第二个 - 在其他语言中也称为“词典”,键值对,关联数组等:
myDict = { a: "apple", b: "banana" };
当我们说
时return { a: "apple" };
与说
相同myDict = { a: "apple" };
return myDict;
在这种情况下“令人困惑”的事情是(1)键和值相同/具有相同的字符表示,(2)该值不是正常的字符串或变量,而是函数。也就是说,访问对象/字典的键“init”将为您提供一个可以使用()
调用的函数。
答案 1 :(得分:4)
它返回一个新的Object实例,其init字段设置为init变量的值。这称为“对象文字”
即
return { init : init };
与
相同var o = new Object();
o.init = init;
return o;