在编程世界中,闭包似乎是在初学者中引起很多困惑的事情之一。但是一旦你理解了它们,它们就会成为你编程库中的一个强大工具。在这篇博文中,我们将讨论什么是闭包,以及它们在 JavaScript 中是如何工作的。
什么是闭包?
简单来说,闭包是嵌套函数使用来自外部函数的变量。内部函数可以访问外部函数中的变量,即使在外部函数返回之后也是如此。这是可能的,因为当您返回一个函数时,您实际上是在返回对该函数的引用。即使外部函数不再运行,内部函数仍然可以访问外部范围内的变量。这可能没有多大意义,所以让我们看一些例子。
闭包示例
假设我们想编写一个函数,它接受两个参数并返回这些参数的总和。我们可以这样写这个函数:
function add(x, y) {
return x + y;
}
现在假设我们想要创建一个总是返回两个数字之和的函数,无论这些数字是什么。我们可以通过使用闭包来做到这一点:
function makeAdder() {
let x = 0;
let y = 1;
return function() {
return x + y;
};
}
let adder = makeAdder();
adder(); // returns 1
现