Сообщение от JSprog
|
function extend(Child, Parent) { //Создание нового объекта типа функция
|
Ок, тут понятно.
Сообщение от JSprog
|
var F = function() { } //Создание нового пустого объекта типа функция
|
Хорошо, тоже понял. Только, наверное, просто - создание анонимной функции, которая сохраняется в переменную F, да?
Сообщение от JSprog
|
F.prototype = Parent.prototype //Добавление всех свойств аргумента функции extend parent пустому объекту типа функции
|
Ничё не понял. Наверное, утановка F.prototype на тот же объект, что и Parent.prototype. А что за .prototype у объектов-функций?
Сообщение от JSprog
|
Child.prototype = new F() //Добавление всех свойств F (а значит и всех свойств аргумента функции extend parent аргументу той же функции child)
|
Тоже сложно. Я вижу, что Child.prototype устанавливается в новый объект, порождённый конструктором F (поправь, если не правильно). А зачем это делается?
Сообщение от JSprog
|
Child.prototype.constructor = Child //поправление свойства constructor чтобы оно сново указывало на child
|
Ага, тут всё ясно. Только не ясно, зачем этот трюк? И почему "снова"? Оно где-то было "сброшено" или выставлено в другое значение?
Сообщение от JSprog
|
Child.superclass = Parent.prototype //для удобства создание прямой ссылки на родительский класс особенно удобно при вызове конструктора родителя и если его свойство было перекрыто
|
Тут тоже понятно.
Два пункта не понял. Может,
B~Vladi поможет?
update: у меня реально что-то с письмами сёдня - плохо ходят. Ответ
Андрей Параничева так и не пришёл, я его снова не видел, когда писал.