Показать сообщение отдельно
  #8 (permalink)  
Старый 21.11.2011, 20:00
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Первый раз парсер пробегается по коду, запоминая function, не заглядывая во внутренности. Т.е. пробежавшись, он знает, что timeTable есть. Поэтому ошибки не возникает и присваивание происходит.

Я у себя попроверял.
Если прототип классу присваивается после создания объекта, объект остается без данных прототипа...

Спецификацию не читал, если кто читал - буду рад услышать комментарий по этому поводу.

function Animal(name) {
    this.name = name
    this.canWalk = true
}

function Rabbit(name) {
    this.name = name
}
big = new Rabbit('Chuk')
Rabbit.prototype = new Animal("скотинка");

small = new Rabbit('Gek')

alert(big.canWalk);
alert(small.canWalk);

Последний раз редактировалось Snipe, 21.11.2011 в 20:02.
Ответить с цитированием