Javascript 使用变量刷新JS函数

Javascript 使用变量刷新JS函数,javascript,jquery,Javascript,Jquery,所以问题是,在setTimeout中出现了一个错误(找不到变量号)。。。。但是为什么呢?我只想在5秒钟后用之前得到的变量刷新函数 问候 因此,我们的想法是,在设置超时时会出现一个错误(找不到变量号)。。。。但是为什么呢 因为当您使用带有setTimeout的字符串时,该字符串中的代码将在全局范围内进行计算。如果没有全局number和id变量,则会出现错误 不要将字符串与setTimeout和setInterval一起使用,请使用以下函数: function checkDownload(a, b)

所以问题是,在
setTimeout
中出现了一个错误(找不到变量号)。。。。但是为什么呢?我只想在5秒钟后用之前得到的变量刷新函数

问候

因此,我们的想法是,在设置超时时会出现一个错误(找不到变量号)。。。。但是为什么呢

因为当您使用带有
setTimeout
的字符串时,该字符串中的代码将在全局范围内进行计算。如果没有全局
number
id
变量,则会出现错误

不要将字符串与
setTimeout
setInterval
一起使用,请使用以下函数:

function checkDownload(a, b) {
    var number = a;
    var id = b;

    //NOT RELATED CODE....
    setTimeout("checkDownload(number,id)", 5000);
}
checkDownload("test", "test1");
副本?问题本身提到了使用globals的字符串版本。。。
// On any recent browser, you can include the arguments after the timeout and
// they'll be passed onto the function by the timer mechanism
setTimeout(checkDownload, 5000, number, id);

// On old browsers that didn't do that, use a intermediary function
setTimeout(function() {
    checkDownload(number, id);
}, 5000);