setInterval和window.onload问题

chc*_*ist 2 javascript setinterval

我有这个代码

window.onload = function() {            
    function foo() {
        alert("test");
    }
    setInterval("foo()",500)
}
Run Code Online (Sandbox Code Playgroud)

哪个返回undefined ...当我在window.onload之外使用它时它工作.谁能解释我为什么?

Max*_*keh 9

使用字符串命令setInterval()将尝试在全局(窗口)范围中查找该函数,但由于该函数是在本地范围内定义的,因此将无法找到该函数.您应该将函数本身传递给它setInterval().

window.onload = function() {            
    function foo() {
        alert("test");
    }
    setInterval(foo, 500);
}
Run Code Online (Sandbox Code Playgroud)