Javascript对象/闭包

时间:2012-07-25 03:25:27

标签: javascript closures

JS大师可以在那里解释为什么:

$$={}
(function(x){
    x.newModule = {
            func: function(){...}
    };
})($$);
$$.newModule.func()

优于此?

$$.newModule = {
    func: function() {...}
}
$$.newModule.func()

2 个答案:

答案 0 :(得分:7)

额外的功能为您提供了一个您可能想要使用的额外本地范围(尽管它不在您的简短示例中)。

(function(x){
    var privateFunction = function() {};
    var privateCounter = 1;
    x.newModule = {
            func: function(){...}
    };
})($$);

答案 1 :(得分:0)

在第一种模式中,您可以拥有在第二种模式中无法实现的私有方法和变量。这就是第一种模式优越的原因。