【发布时间】:2016-10-01 13:04:45
【问题描述】:
我正在尝试制作一个游戏,其中机器需要一段时间才能做出响应,因此用户实际上知道机器正在“决定”它的动作。
我需要使用setTimeout() 方法,但我想为我的函数指定一个参数。
例如:setTimeout(myFunction('p'), 1000);。
问题是当我指定参数时,函数运行得很好,但没有延迟。
【问题讨论】:
标签: javascript delay settimeout
我正在尝试制作一个游戏,其中机器需要一段时间才能做出响应,因此用户实际上知道机器正在“决定”它的动作。
我需要使用setTimeout() 方法,但我想为我的函数指定一个参数。
例如:setTimeout(myFunction('p'), 1000);。
问题是当我指定参数时,函数运行得很好,但没有延迟。
【问题讨论】:
标签: javascript delay settimeout
当您编写setTimeout(myFunction('p'), 1000); 时,myFunction('p') 被评估,然后setTimeout(returnValueOfMyFunction, 1000) 被评估。
这段代码会在正确的时间运行匿名函数:
setTimeout(function (){myFunction('p')}, 1000);
【讨论】:
你可以像这样绑定你的函数,所以时间过后,它会被执行:
setTimeout(myFunction.bind(this, 'p'), 1000);
【讨论】:
只需将带有参数的函数调用包装在另一个无参数函数定义中。
例子:
setTimeout(function() {
myFunction('p');
}, 1000);
【讨论】: