Страшно? ;) Картинка мне самому понравилась, только надо было её ещё больше заавангардить, добавив туда все конструкторы. Мои любимые пикчеры находятся здесь (только для людей с крепкой писхикой): http://egachine.berlios.de/embedding-sm-…
Вместо "экземпляры наследуются от прототипа" правильнее "экземпляры наследуют от прототипа".
Вместо "используют прототип объекта на который указывает функция-создатель" правильнее "используют прототип, на который указывает функция-конструктор".
Вместо "функция-создатель" везде по тексту лучше бы "функция-конструктор".
> "Свойство constructor при этом должно быть вручную заменено на другое"
Не обязательно, только если есть в этом острая нужда.
Просто мне показалось, что здесь автор пытается динамически изменить прототип уже созданного объекта, т.е. перекинуть его в другое место в иерархии. Это не так?
Замена прототипа - это суть игры в наследование в javascript. Перед тем как создать объект-экземпляр мы можем выстроить цепь объектов-прототипов так, как нам нужно, свойства этих объектов по сути станут свойствами экземпляра(ов). Соответственно, после своего создания объект-экземпляр может при необходимости делегировать сообщения своему предку, тот своему и так далее по цепи...
Ну, а ещё прототип переопределяют просто для банального сокращения записи, чтобы не писать 20 раз foo.prototype.x =..., foo.prototype.y = ... пишут инициализатор объекта foo.prototype = {x: 'preved', y: 'medved'}
Да, это моя глупость. Черт, логично, код
function A() {}; var a = new A();
console.log(a.constructor === A);
выдаст true, но из-за того, что конструктор найдется по цепочке у объекта-прототипа.
Читать нужно не «наблы», а обсуждение в форуме, иначе путаница гарантирована. Читать посты Zeroglif-a, как самые доходчивые по сути вопроса.
Кстати, толстые книги не катят ибо 99% из них — это полное г.
Подавляющее большинство книг по javascript действительно плОхи, и даже не в плане освещения прототипов и наследования, а вообще, в целом. Причём нынешние современные стали ещё хуже. Раньше было много базиса и мало чего-то более глубокого, сейчас - мало базиса, куча ошибок, ужасная терминология и претензия на super-mega-advanced...
Javascript Object Layout