【整理】自执行函数
自执行函数
自执行函数(Self-Executing Function)或立即调用的函数表达式(Immediately Invoked Function
Expression, IIFE)是一种设计模式,用于创建一个新的作用域,从而避免变量污染全局作用域。这种函数在定义后会立即被调用。
自执行函数的基本语法如下:
// 使用括号
(function() {
// ...
})();
// 使用感叹号(不推荐,因为可能导致混淆)
!function() {
// ...
}();
// 使用加号(同样不推荐)
+function() {
// ...
}();
// 使用减号(同样不推荐)
-function() {
// ...
}();
在开发中,使用括号是最常见和推荐的方式,因为它清晰明了,不会引起混淆。
注意:自执行函数前要加个分号;防止前一个语句未正确以分号结尾而导致的语法错误。
//自执行函数可以接收参数,就像普通的函数一样:
;(function (param1, param2) {
console.log(param1 + ", " + param2);
})("Hello", "World");
立即调用的函数表达式
立即调用的函数表达式和自执行函数是一个意思。把自执行函数赋值给一个变量,可以通过调用函数返回的公共方法以访问私有变量和函数
var module = (function() {
var privateVar = "I am private";
function privateFunction() {
console.log(privateVar);
}
return {
publicMethod: function() {
privateFunction();
}
};
})();
// 调用公共方法以访问私有变量和函数
module.publicMethod(); // 输出: I am private
总结:
自执行函数在js开发中经常用到,尤其是用于脚本,插件,等私有代码类的场景。创建私有变量和函数,这些变量和函数只能在该函数的作用域内访问,从而避免了全局命名空间的污染,保证自己的代码纯洁性。例如Vue的源码就是一个立即调用的函数表达式:
var Vue = (function (exports) {
...
exports.KeepAlive= KeepAlive;
exports.computed= computed;
exports.createApp= createApp;
exports.h = h;
exports.reactive= reactive;
exports.ref = ref;
...
return exports
}({}));
原文地址:https://blog.csdn.net/baidu_39812199/article/details/143966426
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!