我仍然对那些立即调用函数表达式感到有些困惑。我得到了范围关闭(我读过 Crockford 的书),但后来@plalx 好心给我写了这个例子,因为我有另一个疑问(jsfiddle 在最后链接)使用 IIFE。这又让我有点困惑,这就是我的想法。
在 Java 中,人们会认为:
type doSome(type input){
do_stuff
return same type
};
然后稍后
doSome(data);
所以在 js 中我可以做同样的事情,对吧?
function doSome(input){
do_stuff;
return someThing;
}
后者:
doSome(data);
或者更常用的 IIFE:
var doSome = (function(data){
do_stuff;
return something
})();
后者:
doSome(data);
到目前为止我是正确的吗?
所以我的问题是:为什么在这种情况下使用 IIFE 而不是其他方式?提出这种疑问的两个代码都在 jsfiddle 中: