| Цитата(namata @ 2.11.2007, 19:32) | | Код | function test(word) { setTimeout("say(word)", 1000); } function say(word) { alert(word); } test('hello');
|
Объясните, пожалуйста, почему это вызывает ошибку "word - определение отсутствует" и как будет выглядеть код правильно. Спасибо. |
Ошибку это вызывает потому, что функция setTimeout сделает eval от своего первого параметра через 1 сек. в ГЛОБАЛЬНОМ контексте, а не в том контексте, где стоит ее вызов. В глобальном контексте никаких переменных word нет. Если у тебя версия IE >=5, то можно сделать так
| Код | function test(word) { setTimeout(function () {say(word)}, 1000); } function say(word) { alert(word); } test('hello');
|
|