我正在尝试在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());

10-07 22:20