“js 在定义的时候立即执行的函数表达式(function)写法”也称为IIFE(Immediately Invoked Function Expression)。
IIFE 是一种 JavaScript 函数,它们在定义时会立即执行自己,且不会在全局可见,即不会污染全局作用域。IIFE 最常用的场景是将代码封装在一个作用域中,以防止变量名冲突和代码污染。下面是 IIFE 的标准写法:
(function() {
// 这里是代码块
})();
其中,函数表达式被包裹在一对小括号中,立即执行该函数的方式是在最后加上一对小括号。
示例一:将变量私有化
(function() {
var privateVariable = "IIFE can protect me!";
console.log(privateVariable); // "IIFE can protect me!"
})();
console.log(typeof privateVariable); // "undefined"
在这个示例中,我们创建了一个 IIFE,将变量 privateVariable
定义在函数内部。我们可以在函数内部访问该变量,但在 IIFE 外部是无法访问变量的,从而实现了变量私有化的目的。
示例二:模块化编程
var myModule = (function() {
var privateCounter = 0;
function privateFunction() {
privateCounter++;
}
return {
incrementCounter: function() {
privateFunction();
},
getCounterValue: function() {
return privateCounter;
}
};
})();
myModule.incrementCounter();
console.log(myModule.getCounterValue()); // 1
console.log(typeof privateCounter); // "undefined"
在这个示例中,我们创建了一个模块,使用了 IIFE 将模块的代码封装在一个私有作用域中。该模块包含私有变量 privateCounter
和私有函数 privateFunction
。通过返回一个包含自定义函数的对象字面量,外部代码可以访问模块中的函数,而不能访问模块中的私有变量和私有函数,实现了模块化的目的。
以上就是 IIFE 的完整攻略,使用 IIFE 可以帮助我们更好地管理作用域和模块化编程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 在定义的时候立即执行的函数表达式(function)写法 - Python技术站