2016-06-02 2 views
2

Я пытаюсь сделать игру, где машина требует времени, чтобы ответить, поэтому пользователь действительно знает, что машина «решает» ее движение. Мне нужно использовать метод setTimeout(), но я хочу указать параметр для моей функции.Как можно отложить функцию с параметром?

Пример: setTimeout(myFunction('p'), 1000);. Проблема в том, что когда я указываю параметр, функция работает отлично, но нет задержки.

ответ

2

Когда вы пишете setTimeout(myFunction('p'), 1000);, оценивается myFunction('p'), а затем оценивается setTimeout(returnValueOfMyFunction, 1000).

Этот код будет работать анонимную функцию в нужное время:

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

Спасибо! Это сработало –

+0

@ AndréHelena. Если бы мой ответ помог вам, вы можете принять его? – 2426021684

1

Вы можете связать вашу функцию, как это, так что после того времени, он будет выполнен:

setTimeout(myFunction.bind(this, 'p'), 1000);

1

Просто завершите вызов функции параметрами в другом параметрическом определении функции.

Пример:

setTimeout(function() { 
    myFunction('p'); 
}, 1000); 
Смежные вопросы