gpt4 book ai didi

javascript - y 的值是如何分配的

转载 作者:行者123 更新时间:2023-11-28 16:18:19 25 4
gpt4 key购买 nike

我正在看这个函数

function foo(x) {
var tmp = 3;
return function (y) {
alert(x + y + (++tmp));
}
}
var bar = foo(2); // bar is now a closure.
bar(10);

当我运行它时,变量获得以下值

x = 2,y = 10tmp = 3。

现在我看到在 foo(2) 中 x 被传递为 2。因此 x 得到的值是 2,这是可以理解的。但是 bar(10) 却将 0 值赋给 y。怎么样?我很困惑接收函数如何知道 10 是 bar(10) 分配的 y 值

最佳答案

foo(2) 返回一个接受一个参数 (y) 的匿名函数。当您将 bar 设置为 foo(2) 的返回值时,bar 将成为对该匿名函数的引用。

因此,当您调用 bar(10) 时,您正在调用匿名函数 foo 返回,因此 10 被设置为参数y

关于javascript - y 的值是如何分配的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10674989/

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