gpt4 book ai didi

javascript - 将变量作为闭包中的参数传递

转载 作者:行者123 更新时间:2023-12-02 17:50:47 24 4
gpt4 key购买 nike

我正在研究闭包,发现以下示例代码用于递增名为 count 的“私有(private)”变量:

function setup() {
var count = 0;
return function() {
count += 1;
console.log(count);
}
};
var next = setup();
next();

这对我来说很有意义。但是,当我尝试将变量作为参数传递给嵌套函数时,next() 将“NaN”记录到控制台。例如:

function setup() {
var count = 0;
return function(count) {
count += 1;
console.log(count);
}
};
var next = setup();
next();

谁能解释一下为什么会发生这种情况?

最佳答案

Can someone explain why this happens?

在闭包内,count 现在引用参数function(count) {。由于您在调用函数时没有传递任何参数,因此 countundefined,并且将数字添加到 undefined 会导致 NaN.

when I experimented with passing the variable as an argument to the nested function

需要明确:count参数count变量 在外部函数中定义。您没有将变量作为参数传递,因为您没有调用该函数,而是定义它。

关于javascript - 将变量作为闭包中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371194/

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