IIFE引起功能评估

时间:2014-12-31 18:35:11

标签: javascript

我遇到了与立即调用的函数表达式相关的奇怪行为。

var foo = function(){
    alert('foo');    
}

(function(){
})();

http://jsfiddle.net/tmh8hpum/

运行上面的代码并注意如何评估foo函数,但是..

var foo = function(){
    alert('foo');    
};

(function(){
})();

http://jsfiddle.net/fwcst8w6/1/

向函数添加终结符,不再调用它。

我希望IIFE只评估其自己的函数体内的代码。为什么IIFE会导致直接在其上方的非终止函数被评估?

更奇怪的是,它似乎只是它上面的功能;运行this Fiddle并注意如何仅评估bar()。

0 个答案:

没有答案