3

最近我一直在查看大量的 JavaScript 代码,并且我看到了两种不同的方式来使用分配 IIFE 的“公共”属性。

首先是创建一个变量并将该变量分配给 IIFE 内部的属性,如下所示:

var public1;

(function(){
    var foo= "Foo", bar= "Bar";

    public1= {
        getFoo: function(){
            return foo;
        }
    };
}());

我看到的第二种方法是从 IIFE 返回一个对象,如下所示:

var public2 = (function(){
    var foo2= "Foo2", bar2= "Bar2";

    return {
        getBar: function(){
            return bar2;
        }
    };
}());

这两种方式之间是否存在根本区别,还是只是偏好问题?我还创建了一个小提琴,因此您可以根据需要运行或更新代码:http: //jsfiddle.net/bittersweetryan/gnh79/3/

4

1 回答 1

6

没有区别。

但我认为第二个更容易维护。当您在第一个示例中更改变量名称时,您也必须在函数中更改它。

于 2011-08-25T21:43:14.010 回答