什么是IIFE

432 阅读1分钟

IIFE全称叫做:Immediately invoked function expressions

翻译为:立即调用函数表达式。

写法规范为(函数体)();

如: (function(){……})();

第一个括号包括的是一个匿名函数。

该函数有独立的作用域,不仅函数体外部无法访问内部,而且函数内部的变量或方法也不会污染外部的全局作用域。

第二个括号创建了一个立即执行函数表达式,JavaScript 引擎到此将直接执行函数。

举个例子:

(function(){
    var myName="IIFE测试";
})();

console.log(myName);

此时,我们在浏览器中运行该段代码时,浏览器会提示myName未定义。

image.png

这就是上面我们所说的独立作用域、不会污染全局作用域的意思。

那如果我们想要访问函数体内部的变量该如何修改呢?

var result=(function(){
    var myName="IIFE测试";
    return myName;
})();

console.log(result);

此时在浏览器中访问时,就可以打印出myName的值。

image.png