javascript - obj.prototype = new ParentObj(); 之后的对象方法消失了在 JavaScript 中

标签 javascript inheritance object

我正在尝试在 JavaScript 中继承对象。看一下这个例子:

var BaseObject = function() {
};

var ChildObject = function() {
};

ChildObject.prototype.childMethod = function() {
};

ChildObject.prototype = new BaseObject();
ChildObject.prototype.constructor = ChildObject();

但是,一旦我进行原型(prototype)继承,childMethod() 就会消失。我在这里做错了什么?

最佳答案

当您将原型(prototype)分配给 BaseObject 并且 BaseObject 的原型(prototype)没有 childMethod 方法时,您正在覆盖原型(prototype)。

要获得所需的行为,您必须在将原型(prototype)分配给 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());

关于javascript - obj.prototype = new ParentObj(); 之后的对象方法消失了在 JavaScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3078759/

相关文章:

javascript - 递归函数JS

javascript - 仅当数据为数字或空时,才会在 GridView 中删除行时触发数据确认

javascript - sipML5 中的通话质量指标

Oracle 向一个对象类型添加一个新的成员函数/过程

javascript - 检查所有玩家是否准备好

javascript - 在子框架上使用 jquery 而不再次加载它

c++ - 通过不同的父类从同一个基类进行多重继承真的是个问题吗?

c++ - 多重继承 C++ 和指针

python - 是否可以在子类中重写属性的 getter?

javascript - 是否可以使用 Javascript 遍历 img 标签的 id 属性?