JavaScriptd 的IIFE

立即调用函数表达式Immediately Invoked Function Expression (IIFE)是JavaScript里面最普遍的设计模式之一。正如名称所建议的,IIFE是一个函数表达式 ,在定义完成之后,就自动被调用。括号()在IIFE模式中扮演重要角色。在JavaScript里,括号不能包含语句,它只能包含一个表达式。

这是一种设计模式,有时称为自执行匿名函数,包括两个主要部分。第一部分是这个匿名函数,带有被组操作符()包围的词法作用域,避免IIFE语法访问变量影响全局域。第二部分创建立即执行的函数表达式 (),通过JavaScript引擎将直接解释这个函数。

(function () {
statements
})();

上面的代码即被称为IIFE。在IIFE里面,你可以写全部的函数和变量,而不用担心影响全局域范围,或者和其他JavaScript代码有冲突,即使那些代码有相同名字的函数和变量。

它仅仅是一个匿名函数 ,在被创建后就会执行。当企图不影响全局域名字空间的时候,这种模式被经常使用,因为所有的变量只在IIFE里面可见(如同在其他普通函数里一样),在它外面的范围是不可见的。

原文链接