Показать сообщение отдельно
  #17 (permalink)  
Старый 24.03.2009, 21:47
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

http://javascript.ru/ecma/part10#a-10.1.3

Для объявленных функций:
Цитата:
Если в объекте переменных уже есть свойство с таким именем, заменить его значение и атрибуты.
Для переменных:
Цитата:
Если в объекте переменных уже существует свойство с именем объявленной переменной, значение свойства и его атрибуты не изменяются.
И не путайте "создание/конкретизацию переменных" при котором переменная наполняется свойством 'undefined' и обычное построчное наполнение переменной тем, что справа от знака 'равно'. Первое происходит на "нулевой" строке кода, второе - по ходу дела. В вышеприведённых примерах 'var Person' при конкретизации "слабее" 'function Person', переменная не создаётся, т.к. имя уже занято, слово 'var' мысленно можно зачеркнуть, оставив только присвоение "Person = ...". А уже присвоение выкидывает предыдущее значение, занятое функцией на нулевой строке.
Ответить с цитированием