Javascript - передать функцию с аргументами в качестве аргумента - PullRequest
1 голос
/ 15 июня 2011

Я исправляю некоторые ошибки скрипта и имею деликатную дилемму.

Рассмотрим эту строку кода:

Session.Timer = window.setTimeout("TimeoutHandler(Session)", 1000);

Это не будет работать, потому что, когда Тайм-аут пытается выполнить TimeoutHandler(Session), он не будет знать, что такое переменная Session (вне области видимости).

Есть ли способ получить Session "значение", переведенное в строку или число , чтобы оно выполнялось правильно?

1 Ответ

6 голосов
/ 15 июня 2011

Используйте вместо замыкания (используя анонимную функцию) вместо него ссылку на сессию.

Session.Timer = window.setTimeout(function() { TimeoutHandler(Session); }, 1000);

Если вы не знакомы с замыканиями, вот краткое введение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...