我遇到了与立即调用的函数表达式相关的奇怪行为。
var foo = function(){
alert('foo');
}
(function(){
})();
运行上面的代码并注意如何评估foo函数,但是..
var foo = function(){
alert('foo');
};
(function(){
})();
http://jsfiddle.net/fwcst8w6/1/
向函数添加终结符,不再调用它。
我希望IIFE只评估其自己的函数体内的代码。为什么IIFE会导致直接在其上方的非终止函数被评估?
更奇怪的是,它似乎只是它上面的功能;运行this Fiddle并注意如何仅评估bar()。