В Javascript, какова область видимости переменных, используемых в setTimeout? - PullRequest
7 голосов
/ 25 апреля 2011

Я использую следующий код в функции:

setTimeout("doSomething(var1)",10000);

Но у меня также есть var1 в качестве глобальной переменной.Через 10000 миллисекунд он вызовет локальный var1 или глобальный var1?

Ответы [ 2 ]

15 голосов
/ 25 апреля 2011

Это:

setTimeout('doSomething(var1)', 10000);

пройдет глобальную переменную var1,

А это:

setTimeout(function() { doSomething(var1); }, 10000);

передаст локальную переменную var1.

Демонстрационная версия: http://jsfiddle.net/simevidas/EQMaz/

3 голосов
/ 25 апреля 2011

Он передаст глобальную переменную с именем var1.

...