gpt4 book ai didi

javascript - 学习 javascript 中的闭包及其工作原理

转载 作者:行者123 更新时间:2023-12-01 02:49:38 26 4
gpt4 key购买 nike

我尝试学习 JavaScript 中的闭包。

let f, g;
function foo() {
let x;
f = function() {
return ++x; };

g = function() {
return --x; };

x = 1;
console.log('inside foo, call to f(): ' + f());

}
foo();
console.log('call to g(): ' + g());
console.log('call to f(): ' + f());

我得到:

inside foo, call to f(): 2
call to g(): 1
call to f(): 2

现在最让我困惑的是,为什么f()在函数外仍然是2。这就是闭包的作用吗?任何人都可以用最简单的方式解释这一点。谢谢

最佳答案

我认为您对“为什么 f 可以访问 x 即使我在外部范围声明它”感到困惑。这是因为 JavaScript 首先在 foo 内部启动了一个匿名函数,x对该函数是可见的。然后将其分配给全局变量f,因此它包含foo的范围。

关于javascript - 学习 javascript 中的闭包及其工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47045992/

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