Mas*_*uer 8 javascript callback settimeout setinterval
请考虑以下示例:
<script type="text/javascript">
function alertBox(){
alert('Hello World!');
}
function doSomething(){
setInterval(alertBox(), 5000); //This is for generic purposes only
};
function myFunction(){
setTimeout(doSomething(),3000);
};
myFunction();
</script>
Run Code Online (Sandbox Code Playgroud)
是什么导致它立即执行,而不是等待3秒设置,以及仅执行警报ONCE,而不是按预定的5秒间隔执行?
感谢您的任何帮助,您可以提供!
石匠
Ate*_*ral 17
alertBox()
Run Code Online (Sandbox Code Playgroud)
这看起来不像是一个即时函数调用吗?
尝试传递函数(不执行它):
setInterval(alertBox, 5000);
Run Code Online (Sandbox Code Playgroud)
hvg*_*des 11
因为你正在执行该函数,而不是传递一个函数对象.
function myFunction(){
setTimeout(doSomething, 3000); // no () on the function
};
Run Code Online (Sandbox Code Playgroud)