Hãy xem xét ví dụ sau:JavaScript setTimeout() sẽ không đợi để thực thi?
<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>
nó là gì mà nguyên nhân này để thực hiện NGAY, thay vì chờ đợi 3 giây được thiết lập, cũng như chỉ thực hiện các cảnh báo ONCE, chứ không phải so với khoảng thời gian 5 giây đã lên lịch?
Cảm ơn bạn đã trợ giúp bạn có thể cung cấp!
Mason
Vâng, ** callback được gọi ngay lập tức ** (và kết quả * * được truyền cho 'setTimeout') .. vượt qua chức năng - thay vào đó. –
Đây có lẽ là câu hỏi javascript được hỏi nhiều nhất trên SO. – jfriend00
@ jfriend00 Tôi nghĩ rằng các biến đóng trong các vòng có thể buộc nó .. ;-) –