📜  立即调用函数 javascript (1)

📅  最后修改于: 2023-12-03 14:56:37.913000             🧑  作者: Mango

立即调用函数 (Immediately-Invoked Function Expression, IIFE)

在 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 代码时,我们应该充分利用这个模式,以提高代码的可读性和可维护性。