为什么立即调用函数表达式(IIFE)与自执行匿名函数不同?

jjp*_*dor 3 javascript iife

很明显,在EcmaScript中,调用时的函数会创建一个新的执行上下文.函数中定义的所有变量和函数只能在该函数范围内访问.但是当我们使用闭包变量时,可以在该上下文之外访问函数.IIFE是一个立即调用的函数表达式.很简单.

但是为什么IIFE与自我执行的匿名函数不同,对我来说还不完全清楚!?

epo*_*och 8

它们是相同的,它被重命名为,IIFE因为它IIFE不一定是匿名的,并且它们不会自己执行.

考虑以下:

(function bleh() {
    alert('I am not anonymous, i have a name!');
})(); //<-- invoked like any other function
Run Code Online (Sandbox Code Playgroud)