gpt4 book ai didi

javascript - 当获得以下代码的输出时,为什么 i 的值显示未定义

转载 作者:行者123 更新时间:2023-12-02 21:32:43 24 4
gpt4 key购买 nike

let i = 0;

const g = (i, callback) => {
if (i < 100) {
callback(i)
i++;
g(i, callback)
} else return
}

const k = (i) => {
setTimeout((i) => {
console.log('hi' + i);
}, i * 1000);
}
g(i, k);

这是使用回调打印由 i 值连接的 hi 的代码,每隔 1 秒打印 100 次。我无法确定哪里出了问题。如果有人能帮助我解决这个问题,那就太好了。

最佳答案

传递给 setTimeout 的函数内的 i 遮蔽了 k 接受的参数。因此,要更正片段,您只需删除回调的参数:

let i = 0;

const g = (i, callback) => {
if (i < 100) {
callback(i)
i++;
g(i, callback)
} else return
}

const k = (i) => {
setTimeout(() => { // <------ I removed `i` here
console.log('hi' + i);
}, i * 1000);
}
g(i, k);

关于javascript - 当获得以下代码的输出时,为什么 i 的值显示未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579801/

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