gpt4 book ai didi

Javascript 闭包

转载 作者:数据小太阳 更新时间:2023-10-29 03:52:19 29 4
gpt4 key购买 nike

我仍然对 JavaScript 中的闭包概念感到困惑。我明白闭包是内部函数在母函数返回后访问在其母函数中创建的变量的能力。但是我仍然很困惑,如果我们可以在函数内部创建一个变量,为什么我们必须创建内部函数来保护局部变量?

最佳答案

我们需要创建一个内部函数,以便在外部函数返回后,外部函数中的变量仍然存在。

考虑一个简单的函数:

function f() {
var x = 0;
return ++x; // x=1
} // Once the function has exited then "x" no longer exists.

请注意,只有当程序的控制从“f()”函数的开始流向其结束时,变量“x”才是“事件的”(存在的,存在的)。但是,如果我们将“x”包含在一个内部函数中,那么只要内部函数存在,x 就会存在:

function g() {
var x = 0;
return function() {
// Now "x" will live for as long as this function.
return ++x;
}
};
var counter = g();
counter(); // => 1
counter(); // => 2
counter(); // => 3

现在,当我们调用“g()”时,我们得到另一个函数,只要该函数被变量引用,“x”就会一直处于事件状态。

关于Javascript 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578441/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com