在javascript中返回花括号的含义是什么(例如return {init:init})

时间:2013-07-07 21:22:38

标签: javascript

我正在查看此代码:

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

return语句是什么意思?我以前没有在return语句中看过大括号,甚至不确定'init:init'是什么。

2 个答案:

答案 0 :(得分:9)

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

  1. 对象文字
  2. 您可能已经看过第二个 - 在其他语言中也称为“词典”,键值对,关联数组等:

    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;