0
我想用另一个原型扩展原型。这是我目前的代码,尝试了不同的东西,我无法实现它的工作。用另一个原型扩展原型
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'是@Alnitak'Object.create'只为对象创建为此在ES5 – Alnitak
的_only_正确的方法,或使用第二个参数填充对象? – nils
仅用于创建新的原型对象 - 从超类的_instance_复制原型只是“错误的”。 – Alnitak