ES6 IIFE
ES6 IIFE
它是一个 JavaScript 函数 一定义就运行。 IIFE(立即调用函数表达式)可用于避免块内的变量提升。它允许公开访问方法,同时保留函数中定义的变量的隐私。
IIFE 是一种设计模式,也称为 Self-Executing Anonymous功能。它包含两个主要部分:
第一部分是具有词法作用域的匿名函数,它包含在分组运算符()内。
第二部分创建 IIFE,JavaScript 引擎将通过它直接解释函数。
语法
(function ()
{
statements
})();
// Syntax of IIFE with ES6 arrow functions (though parentheses only allowed on outside)
(() => { /* ... */ })();
让我们通过下面的例子来尝试理解IIFE的概念。
例子
(function()
{
console.log("Hello World");
})();
输出
将函数转换为 IIFE
我们可以使用以下步骤将常规函数转换为 IIFE:
假设任何常规函数定义。
将该定义包裹在一对括号内,这将创建函数表达式。
最后,我们必须添加一对括号和一个分号来标记语句的结尾。
让我们在下面的例子中看到相同的插图:
例子
// Regular Function.
function hello()
{
console.log("Regular function");
};
// Regular Function execution.
hello();
// IIFE creation and execution.
(function() { console.log("Immediately Invoked Function Expression"); })();
输出
Regular function
Immediately Invoked Function Expression
关于 IIFE 的要点
立即调用的函数表达式(IIFE) 有其作用域。函数表达式中声明的变量在函数外不可用。
与其他函数一样,IIFE 也可以是匿名的或命名的。
IIFE 也可以参数化。例如,
示例
(function (x, y, z) {
console.log(x);
console.log(y);
console.log(z);
})(100, 200, 300);
输出