ES6 IIFE



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"); 
})();

输出
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);

输出
100
200
300