本文介绍了在obj.prototype = new ParentObj()之后消失的对象方法;在JavaScript中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying inherit objects in JavaScript. Take a look at this example:

var BaseObject = function() {
};

var ChildObject = function() {
};

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

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

但是,只要我做原型继承,childMethod()就会消失。我在这里做错了什么?

However, as soon as I do prototypal inheritance, the childMethod() disappears. What am I doing wrong here?

推荐答案

当你将原型分配给BaseObject并且BaseObject的原型没有childMethod方法时,你会覆盖原型。

You are overwriting the prototype when you assign it to BaseObject and BaseObject's prototype has no childMethod method.

要获得所需的行为,您必须在将原型分配给BaseObject后添加childMethod:

To get the desired behavior you have to add childMethod after assigning the prototype to BaseObject:

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());

这篇关于在obj.prototype = new ParentObj()之后消失的对象方法;在JavaScript中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 22:35