Immediately Invoked Function Expression,“立即调用的函数表达式”

15 min read

立即调用的函数表达式(Immediately Invoked Function Expression,IIFE)是一种 JavaScript 编程技术,它允许我们在定义之后立即调用函数。这种技术常用于创建私有作用域、避免变量污染和在代码执行前初始化一些任务。

IIFE 的基本语法如下:

(function() {
    // 在这里编写代码
})();

上述代码中,函数表达式被包裹在一个括号中,并紧跟着另一个括号进行立即调用。这样就创建了一个匿名函数,并立即执行它。

IIFE 可以接受参数,传递参数的方式如下:

(function(param1, param2) {
    // 在这里使用参数进行操作
})(arg1, arg2);

在上述代码中,函数定义时指定了两个参数 param1 和 param2,并在立即调用时传入了参数 arg1 和 arg2。

使用 IIFE 的一个常见用途是创建私有作用域。由于 IIFE 中定义的变量只在该函数内部有效,因此可以避免变量冲突和全局命名污染。

下面是一个简单的示例,演示了如何使用 IIFE 创建私有变量:

(function() {
    var privateVariable = '私有变量';

    function privateFunction() {
        console.log('私有函数');
    }

    // 在这里编写其他代码

    privateFunction(); // 调用私有函数
})();

在上述代码中,privateVariable 和 privateFunction 都是 IIFE 中定义的私有变量和函数。其他代码无法访问这些私有变量和函数。

总结来说,立即调用的函数表达式是一种在 JavaScript 中创建私有作用域、避免变量污染和执行一些初始化任务的常用技术。