Переопределение переменной в функции
Здравствуйте!
Вот пример хорошо знакомой области видимости функции: var a = 1; (function () { alert(a) })() Недавно заметил такую штуку, что если в последующей функции мы переопределяем переменную, то исходная переменная нам не доступна не только после объявления такой же переменной но и до этого. Тоесть: var a = 1; (function () { a = 3; //казалось бы мы заменили а = 1 на а = 3, но это не так alert(a) var a = 2; })() alert(a);//1 Практически получив такой код интерпретатор воспринимает его так: var a = 1; (function () { var a; a = 3; alert(a) a = 2; })() alert(a);//1 Я немного поискал, но нигде не нашёл информации по данному нюансу. Если кто знает где об, этом почитать, было бы любопытно посмотреть. Спасибо за внимание. |
Также если у кого есть ссылки на интересные вещи о javascript, если не жалко - киньте почитать :)
|
Цитата:
|
попросту говоря,
(function () { a = 3; alert(a) var a = 2; })() эквивалентен (function () { var a; a = 3; alert(a) a = 2; })() |
Яростный Меч,
Интересно, никогда не пробовал писать присвоение значения до объявления переменной. |
|
Часовой пояс GMT +3, время: 05:29. |