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

Why Immediately-Invoked Function Expression (IIFE) are different from Self-Executing Anonymus Functions?

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

但是为什么生活与自动执行匿名功能不同,我不完全清楚!?


它们是相同的,它被重命名为IIFE,因为IIFE不一定是匿名的,它们不执行自己的操作。

考虑以下内容:

1
2
3
(function bleh() {
    alert('I am not anonymous, i have a name!');
})(); //<-- invoked like any other function