JavaScript自执行函数(Self-Invoking Function),又叫立即执行函数(Immediately-Invoked Function Expression,IIFE),是一种可以立即自动执行的函数。它的语法结构非常简单:
(function(){
// code
})();
上述代码定义了一个匿名函数,并立即执行。整个函数块被包含在一对括号中,形成一个表达式,紧随其后的另一对括号表示立即执行该表达式。
自执行函数的特点:
- 自执行函数可以让函数内部的变量不会被外部引用到,充分实现模块化。
- 自执行函数形成一个独立的作用域,可以防止变量污染全局。
- 自执行函数通过return语句可以向外输出变量或函数。
下面是两个使用自执行函数的示例:
示例1:模块化
let module = (function(){
let name = 'module';
let version = 1.0;
function getName() {
return name;
}
function getVersion() {
return version;
}
return {
getName: getName,
getVersion: getVersion
};
})();
console.log(module.getName()); // 输出 "module"
console.log(module.getVersion()); // 输出 1.0
上述代码使用自执行函数模拟了一个模块,内部有私有变量name和version,还有对外暴露的getName和getVersion两个方法。这样可以避免变量名冲突,保证代码的可维护性。
示例2:避免变量污染全局
(function(){
let name = 'Alice';
console.log('inner:', name);
})();
console.log('outer:', name);
上述代码中,内部的自执行函数定义了一个变量name并输出,在函数外部输出会报错,因为变量未定义,这样可以避免变量污染全局。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript自执行函数 - Python技术站