gpt4 book ai didi

javascript - 如何在 setTimeout 调用中解决 Var 超出范围的问题

转载 作者:可可西里 更新时间:2023-11-01 01:55:19 26 4
gpt4 key购买 nike

我正在尝试从 setInterval 回调中调用 setTimeout:

function callback()
{
//assign myVar
var myVar = document.getElementById("givenID");
//...
//now wait 2 secs then call some code that uses myVAr
setTimeout("myVar.innerHTML = 'TEST'", 2000);
}

setInterval("callback();", 10000);

setInterval 按预期工作,但 setTimeout 调用失败。我想这个问题与我引用的变量 (myVar) 不在范围内有关。

解决这个问题的最佳方法是什么?

最佳答案

这是闭包的完美候选者:

setInterval(
function ()
{
var myVar = document.getElementById("givenID");
setTimeout(
function()
{
// myVar is available because the inner closure
// gets the outer closures scope
myVar.innerHTML = "Junk";
},2000);
}, 10000);

您的问题与范围相关,这可以解决这个问题。

关于javascript - 如何在 setTimeout 调用中解决 Var 超出范围的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237350/

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