我正在尝试在JavaScript中继承对象。看一下这个例子:
var BaseObject = function() {
};
var ChildObject = function() {
};
ChildObject.prototype.childMethod = function() {
};
ChildObject.prototype = new BaseObject();
ChildObject.prototype.constructor = ChildObject();
但是,一旦我进行原型继承,childMethod()就会消失。我在这里做错了什么?
最佳答案
当您将原型分配给BaseObject并且BaseObject的原型没有childMethod方法时,您将覆盖该原型。
为了获得所需的行为,必须在将原型分配给BaseObject之后添加childMethod:
var BaseObject = function() {
};
var ChildObject = function() {
};
ChildObject.prototype = new BaseObject();
ChildObject.prototype.constructor = ChildObject;
ChildObject.prototype.childMethod = function() {
return 'childMethod';
};
c = new ChildObject();
alert(c.childMethod());