我的GitHub
IIFE,全称是 Immediately Invoked Function Expression(立即调用的函数表达式),是JavaScript中的一种编程模式,它通过创建一个匿名函数,并立即执行这个函数,来实现一些特定的编程需求。
基本结构如下:
(function () {
// 代码块
})();
或者,你也可以这样写:
(function () {
// 代码块
}());
两种写法的效果是一样的。
IIFE的主要优点有:
- 创建独立的作用域:在IIFE内部定义的变量和函数只在IIFE的作用域内可见,不会污染全局作用域。
- 立即执行:函数定义好后立即执行,而不需要调用。
- 保护私有成员:通过IIFE你可以创建私有变量和函数,这些成员不能从外部访问。
- 避免变量冲突:通过创建新的作用域,避免了与全局作用域或其他脚本的变量和函数冲突。
示例:
(function () {
var privateVar = "I am private";
console.log(privateVar); // 输出 "I am private"
})();
console.log(privateVar); // 出现错误,privateVar is not defined,因为privateVar在IIFE的作用域外不可见