我最近一直在查看很多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/
答案 0 :(得分:6)
没有区别。
但我认为第二个更容易维护。在第一个示例中更改变量名称时,您还必须在函数中更改它。