很明显,EcmaScript中,函数在调用时会创建一个新的执行上下文。函数内定义的所有变量和函数仅能在该函数作用域内访问。但是当我们使用闭包时,变量和函数可以在外部上下文中访问。
IIFE是一种立即调用的函数表达式。它非常简单。
但是为什么IIFE与自执行匿名函数不同,对我来说不是完全清楚!
很明显,EcmaScript中,函数在调用时会创建一个新的执行上下文。函数内定义的所有变量和函数仅能在该函数作用域内访问。但是当我们使用闭包时,变量和函数可以在外部上下文中访问。
IIFE是一种立即调用的函数表达式。它非常简单。
但是为什么IIFE与自执行匿名函数不同,对我来说不是完全清楚!
它们是相同的,因为一个立即执行函数表达式(IIFE)不一定是匿名的,并且它们不会自行执行。但由于这个原因,它被重命名为 IIFE
。
请考虑以下内容:
(function bleh() {
alert('I am not anonymous, i have a name!');
})(); //<-- invoked like any other function