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