小编Pay*_*ton的帖子

IIFE导致功能评估

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

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

(function(){
})();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/tmh8hpum/

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

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

(function(){
})();
Run Code Online (Sandbox Code Playgroud)

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

在函数中添加一个终止符,不再调用它.

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

更奇怪的是,它似乎只是直接在它上面的功能; 运行这个小提琴,并注意如何只评估bar().

javascript

5
推荐指数
0
解决办法
47
查看次数

标签 统计

javascript ×1