Javascript 如何延迟带参数的函数?

Javascript 如何延迟带参数的函数?,javascript,delay,settimeout,Javascript,Delay,Settimeout,我正在尝试制作一个游戏,在这个游戏中,机器需要一段时间才能做出反应,因此用户实际上知道机器正在“决定”它的动作。 我需要使用setTimeout()方法,但我想为我的函数指定一个参数 示例:setTimeout(myFunction('p'),1000)。 问题是,当我指定参数时,函数运行得非常好,但没有延迟。当您编写setTimeout(myFunction('p'),1000)时,myFunction('p')被计算,然后setTimeout(returnValueOfMyFunction,

我正在尝试制作一个游戏,在这个游戏中,机器需要一段时间才能做出反应,因此用户实际上知道机器正在“决定”它的动作。 我需要使用
setTimeout()
方法,但我想为我的函数指定一个参数

示例:
setTimeout(myFunction('p'),1000)
问题是,当我指定参数时,函数运行得非常好,但没有延迟。

当您编写
setTimeout(myFunction('p'),1000)时
myFunction('p')
被计算,然后
setTimeout(returnValueOfMyFunction,1000)
被计算

此代码将在正确的时间运行匿名函数:

setTimeout(function (){myFunction('p')}, 1000);

您可以像这样绑定您的函数,因此在时间过后,它将被执行:


setTimeout(myFunction.bind(这个'p'),1000)

只需在另一个无参数函数定义中用参数包装函数调用

例如:

setTimeout(function() {
    myFunction('p');
}, 1000);

@安德烈·海伦娜如果我的回答对你有帮助,你能接受吗?