setInterval调用函数时出现问题

问题描述

| 我正在尝试使用一个简单的脚本来工作,但是在某个地方我一定做错了什么,因为它不起作用!我只想设置一个调用函数的间隔时间。寻求帮助。也许不是最好的解决方案,但是我对此并不陌生。
$(document).ready(function() {

startInterval(); // activate timer

function startInterval() {
var t = setInterval(\"autoSave\",20000);
}

function autoSave() {
alert(\"test\");
}

});
    

解决方法

        1)更好的做法是使t-全局,否则在startInterval()函数外部将无法访问它。但是您需要它来清除间隔 即声明var t;
function startInterval();
之前 2)考虑:
t = setInterval(\'autoSave()\',20000);
    ,        这些中的任何一种都可以,但是您没有
// Pass the real function
function startInterval() {
  var t = setInterval(autoSave,20000);
}

// THIS MAY NOT WORK
// eval
function startInterval() {
  var t = setInterval(\"autoSave()\",20000);
}
//

// Anonymous function
function startInterval() {
  var t = setInterval(function() { autoSave(); },20000);
}
原因如下:如果直接传递一个函数,它将调用它。但是,如果您传递一个字符串,则在超时时它将向字符串ѭ4倾斜-在您的情况下返回一个函数,在我的第二种情况下返回一个被求值的函数(请注意括号)     ,        删除\“ \”,并使其引用该函数。
function startInterval() {
  var t = setInterval(autoSave,20000);
  //                  ^now you have a reference to
  //                   autoSave and setInterval knows
  //                   what to execute
}