有两个函数hello1()和hello2()。
function hello1(){ console.log('hello1'); } function hello2(){ console.log('hello2'); } setTimeout(hello1, 3000); setTimeout(hello2(), 3000);
在中setTimeout(hello1, 3000);,延迟3秒后打印“ hello1”。
setTimeout(hello1, 3000);
但是在中setTimeout(hello2(), 3000);,它会立即打印“ hello2”。
setTimeout(hello2(), 3000);
我认为是因为它必须在setTimeout中使用函数名称。
如果我想在延迟3秒后执行带有参数的函数hello(1)怎么办?
hello(1)
因为我想将参数传递给函数,所以我不能只在setTimeout中使用函数名,例如 setTimeout(hello1, 3000);
当对函数使用括号时,将setTimeout立即执行。
setTimeout
要将函数与参数一起使用,可以将任意函数用作超时函数,并在其中调用函数。
setTimeout(function() { hello(1, 'param'); }, 3000);