📅  最后修改于: 2023-12-03 14:56:37.913000             🧑  作者: Mango
在 JavaScript 中,立即调用函数 (IIFE) 是一种比较常用的模式。它可以被用来封装变量以及避免全局变量的污染。在本文中,我们将学习如何创建和使用这种模式。
在 JavaScript 中,我们用以下方式来创建一个立即调用函数:
(function () {
// function body
})();
可以看到,我们把函数封装在圆括号中,并且在末尾加了一对圆括号。这样一来,我们创建的函数就可以立即执行。
当然,也可以为这个函数添加参数。例如:
(function (name) {
console.log("Hello, " + name + "!");
})("world"); // 输出 "Hello, world!"
这里我们定义了一个接受一个参数 name
的函数,并且立即调用它并传入了参数 "world"
。
立即调用函数的一个常见用途是封装变量,把它们从全局命名空间中隔离开来,以避免污染全局作用域。例如:
(function () {
var a = 1;
console.log(a); // 输出 1
})();
console.log(a); // 报错:a is not defined
我们在立即调用函数中定义了一个变量 a
,在函数外部无法访问这个变量。这样一来,我们就可以避免变量名冲突及全局变量的污染问题。
我们也可以使用立即调用函数来返回一个值,如下所示:
var result = (function () {
var a = 2;
return a * a;
})();
console.log(result); // 输出 4
在这个例子中,我们定义了一个立即调用函数,它返回了一个值 a * a
,并且立即将这个值赋值给 result
变量。
立即调用函数是一个非常有用的 JavaScript 模式,它可以帮助我们封装变量以及避免全局变量的污染。我们可以为这个函数添加参数,并且返回值。在编写 JavaScript 代码时,我们应该充分利用这个模式,以提高代码的可读性和可维护性。