Первый раз парсер пробегается по коду, запоминая 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);