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