【发布时间】:2011-11-04 01:52:36
【问题描述】:
我最近一直在查看大量 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/
【问题讨论】:
-
IIFE = 立即调用函数表达式,我假设。老实说,我从来没有听说过这个术语或缩写(这并不意味着什么)。虽然我认为 立即 或 自调用函数 更常见。
-
@Felix: Here's an article 讨论 IIFE,以及名称的原因。 “如果您喜欢首字母缩略词,我建议使用术语“立即调用函数表达式”和“IIFE”......因为它不是在执行自身的函数,即使正在执行该函数”
-
@patrick:谢谢,非常感谢!我想我只是不喜欢缩写词;):D
标签: javascript iife