Показать сообщение отдельно
  #6 (permalink)  
Старый 17.03.2012, 11:39
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Ваш код выводит undefined, потому что эквивалентен следующему
(function() {
  var a=1;
  (function(){
    var a; //  оно undefined, 
    alert(a); // Ожидал получить 1, выводит "undefined"
    a=2;
   //  alert(a); // тут уже 2
    (function(){
      alert(a); // Выведет 2.
    })();
  })();
  alert(a); // Выведет 1.
}) ();

Это логично, если прочитать о том, как ищутся в js переменные в вложенных областях видимости и про объект вызова заодно

Последний раз редактировалось Rootpassword, 17.03.2012 в 11:44.
Ответить с цитированием