Я хотел бы продлить прототип другим прототипом. Это мой текущий код, попробовал и другие вещи, и я не могу заставить его работать.Расширение прототипа другим прототипом
Network.prototype - пустой объект, почему?
function Tester() {}
Tester.prototype = {
\t clazz: 'Tester',
\t start: function (url) {}
};
function NetworkTester() {}
NetworkTester.prototype = {
\t clazz: 'NetworkTester',
test: function (url) {
this.start(); // this is undefined
}
};
var helpers = {
extend2: function (ChildClass, ParentClass) {
\t \t ChildClass.prototype = new ParentClass();
\t \t ChildClass.prototype.constructor = ChildClass;
\t }
};
helpers.extend2(NetworkTester, Tester);
console.log(NetworkTester.prototype);
Я не хочу писать NetoworkTester такой код:
NetworkTester.prototype.clazz = 'NetworkTester';
NetworkTester.prototype.test = function (url) {
this.start(); // this is undefined
};
я хочу, как я, он похорошел.
ИМХО, используя 'Object.create' является _только_ правильный способ сделать это в ES5 – Alnitak
@Alnitak' Object.create' только для создания объекта, или для заполнения объекта с использованием второго параметра? – nils
только для создания нового объекта прототипа - копирование прототипа из _instance_ суперкласса просто «неправильно». – Alnitak