Javascript 引用错误:Can';找不到变量错误

Javascript 引用错误:Can';找不到变量错误,javascript,jquery,Javascript,Jquery,我有以下代码: $(document).ready(function(){ var callPage = function(){ $.post('/pageToCall.php'); }; setInterval('callPage()', 60000); }); 它给出了错误ReferenceError:cannotfind variable:callPage。为什么?试试setInterval(callPage,60000) 如果将字符串传递给se

我有以下代码:

$(document).ready(function(){
    var callPage = function(){
        $.post('/pageToCall.php');
    };

    setInterval('callPage()', 60000);
});
它给出了错误
ReferenceError:cannotfind variable:callPage
。为什么?

试试
setInterval(callPage,60000)

如果将字符串传递给
setInterval
,则该字符串将在全局范围内求值。问题在于,
callPage
ready
回调的本地调用,而不是全局调用


几乎没有理由将字符串传递给
setInterval
setTimeout
)。始终传递函数(以避免此类错误)。

我怀疑这是因为callPage是在document.ready事件中创建的匿名函数的变量。如果将callPage定义移到该定义之外,它是否有效?

函数callPage()
{
$.post('/pageToCall.php');
};
$(文档).ready(函数()
{
setInterval('callPage()',60000);
});

这是因为callPage的作用域是匿名函数

yea。。。您正在传递对函数的引用。不是一根弦。@Felix Kling我拒绝从你的回答中获得名誉点,事实上我想投票支持你的解释:)@Darhazer:好吧,我希望你至少不要在这件事上失利。。。这对我来说完全没问题,我已经有足够的声望了;)你的回答是正确的,我不认为有必要提供我自己的解释。。。不管怎么说,我已经做到了。@Felix Kling我已经赢得了最大的每日声誉,所以我也没有失去任何东西。但是SO的目的是教育读者,而不仅仅是提供一个工作代码,所以感谢您添加解释。您在callpage中的期望值。函数不返回它看起来的任何内容@zod:callPage的返回值(或缺少)是不相关的。正如布赖恩所说,与此相关的可能是setInterval的第一个参数的类型。