📅  最后修改于: 2023-12-03 15:41:35.781000             🧑  作者: Mango
IIFE是立即调用函数表达式(Immediately Invoked Function Expression)的简称。在JavaScript中,IIFE是一种常见的设计模式,用于限制变量的作用域并且避免变量污染全局作用域。
IIFE是一个包装在括号中的匿名函数,紧接着用括号把这个函数表达式包裹起来,再加上括号对其进行调用。这个函数会立即调用并执行。例如:
(function () {
// 这里是函数执行的代码
}());
在IIFE的外面包裹了一对括号是因为,函数表达式必须在其后面跟一个括号,表示其是一个函数调用的语法。
IIFE常常用于定义模块或封装代码,以避免对全局作用域造成污染。例如:
(function () {
var privateVariable = "这是一个私有变量";
function privateFunction() {
console.log("这是一个私有函数");
}
window.MyModule = {
publicMethod: function () {
console.log("这是一个公有方法");
},
publicVariable: "这是一个公有变量"
};
}());
以上代码中,我们创建了一个IIFE,在其中定义了私有变量和私有函数,并将一个公共接口(MyModule)暴露出来,从而使外部代码可以访问到公共变量和方法,而且不会改变私有变量和函数。
使用IIFE的优点包括:
IIFE是一个常见的设计模式,用于避免变量污染全局作用域,并且允许你在函数执行之前完成一些代码初始化操作。IIFE的实现非常简单,只需要在一个匿名函数的外面包裹一对括号,并立即调用它即可。
代码片段:
(function () {
var privateVariable = "这是一个私有变量";
function privateFunction() {
console.log("这是一个私有函数");
}
window.MyModule = {
publicMethod: function () {
console.log("这是一个公有方法");
},
publicVariable: "这是一个公有变量"
};
}());