gpt4 book ai didi

javascript - 闭包究竟如何记住它的词法范围?

转载 作者:行者123 更新时间:2023-11-28 14:52:31 26 4
gpt4 key购买 nike

所以我理解 JavaScript 中闭包的作用,但我不明白它“如何”记住。

使用 YDKJS 书中的示例:

function foo() {
var a = 2;

function bar() {
console.log( a );
}

return bar;
}

var baz = foo();

baz()//Prints 2

我知道 bar 正在被返回,并且 bar 可以访问包含 a 的词法范围。我们可以使用 foo() 的返回值来创建多个项目,这太棒了!然而幕后究竟发生了什么。

是对随函数返回的原始变量的引用......还是某个隐藏的副本?到底发生了什么?

最佳答案

Is a reference to the original variable getting returned with the function....or some copy that's hidden? What's actually going on?

本质上是的。返回的函数带有其封闭范围,其中包括该范围内的变量。它不是这些变量的副本——它是范围本身。这就是闭包的本质。

关于javascript - 闭包究竟如何记住它的词法范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014431/

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