的JavaScript的setTimeout()会迫不及待地执行?(JavaScript setTi

2019-06-17 15:55发布

请看下面的例子:

<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>

是什么导致这种立即执行,而不是等待3秒为单位设置,以及只执行警报一次 ,而不是在计划每隔5秒?

感谢您的任何帮助,您可以提供!

石匠

Answer 1:

alertBox()

这难道不是看起来像一个直接的函数调用?

尝试传递函数(但不执行),而不是:

setInterval(alertBox, 5000);


Answer 2:

它的,因为你正在执行的函数,而不是通过一个函数对象。

function myFunction(){
    setTimeout(doSomething, 3000); // no () on the function
};


文章来源: JavaScript setTimeout() won't wait to Execute?