function checkDownload(a, b) {
var number = a;
var id = b;
//NOT RELATED CODE....
setTimeout("checkDownload(number,id)", 5000);
}
checkDownload("test", "test1");
所以问题是,在setTimeout
出现错误(无法找到变量号)....但为什么呢?我只想用我之前获得的变量在5秒后刷新功能。
此致
答案 0 :(得分:9)
所以想的是,在setTimeout中出现了一个错误(找不到变量号)....但为什么呢?
因为当您使用带有setTimeout
的字符串时,该字符串中的代码将在全局范围内进行评估。如果您没有全局 number
和id
变量,则会收到错误。
请勿使用setTimeout
和setInterval
的字符串,请使用函数:
// 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);