使用变量刷新JS函数

时间:2017-03-17 13:05:05

标签: javascript jquery

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

    //NOT RELATED CODE....
    setTimeout("checkDownload(number,id)", 5000);
}
checkDownload("test", "test1");

所以问题是,在setTimeout出现错误(无法找到变量号)....但为什么呢?我只想用我之前获得的变量在5秒后刷新功能。

此致

1 个答案:

答案 0 :(得分:9)

  

所以想的是,在setTimeout中出现了一个错误(找不到变量号)....但为什么呢?

因为当您使用带有setTimeout的字符串时,该字符串中的代码将在全局范围内进行评估。如果您没有全局 numberid变量,则会收到错误。

请勿使用setTimeoutsetInterval的字符串,请使用函数:

// 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);