2017-07-12 13:09:13php
遇到一个这样的问题:当在jquery里面用jquery
$(function(函数
//code ...code
setInterval(startTime,1000);ip
){})作用域
当传入的形参为func时正常,当func()时不可行,只运行了一次,当"func()“也不行,直接什么都没有了io
在网上找到了一篇贴子:http://www.softwhy.com/forum.php?mod=viewthread&tid=6940编译
以及stackoverflow:https://stackoverflow.com/questions/457826/pass-parameters-in-setinterval-functionfunction
>>>在全局做用域下 setInterval("fun()",1000); 能够正常执行,但放到window.onload函数中却不能执行。为何呢?thread
setInterval如今把以引号包括的可执行代码进行处理。就像eval同样给予执行,JavaScript有一个预编译处理,首先对函数和变量进行预编译。也就是说其函数和变量做用域是在其声明的时候肯定的,而不是在执行的时候肯定。当setInterval把"fun()"执行环境换为全局的后,对fun的调用是无效的。由于全局不能访问局部的函数和变量。window.onload相对于window来讲就是局部的。