Сообщение от Maxmaxmахimus
|
давай так давай называть поля полями, в полях могут быть свойства и методы. перепиши свое сообщение с этой терминалогиеу)
|
Нет, давай называть "свойства" - "свойствами", а не "полями".
Лучше я поясню на коде.
function Constructor () {}
Constructor.prototype.method = function (){}; // Наследуемое свойство method.
var object = new Constructor();
object.method = function (){}; // Наследуемое свойство перекрыто.
// Теперь при работе с объектом object нужно обращаться к свойствам напрямую:
object.method();
// но никак не:
object.constructor.prototype.method.call(method);
// Или через костыли, вроде твоего.
Подобные записи говорят о том, что наследование реализовано криво с точки зрения ООП. Потомок ничего не должен знать о своих предках, они умерли для него. У него есть только то, что он унаследовал или приобрел. Для того, что бы не копипастить реализации методов и при этом иметь возможность выполнять методы предков существует делегирование, которое реализуется в коде перекрываемого метода:
object.method = function (){
// some code
return this.constructor.prototype.method.call(this);
};
Так понятно?