【发布时间】:2016-03-11 20:59:42
【问题描述】:
我在这里使用公认的答案来实现继承:Javascript inheritance: call super-constructor or use prototype chain?。所以我有一个从 A 类继承的 B 类。B 类在其原型上具有 B 类对象独有的属性/功能。
编辑:更清楚地说,我已经设置了继承链,这不是我需要帮助的。对象定义如下:
function classA() {
this.name= '';
this.sex = '';
}
function classB(){
classA.call(this, arguments);
this.age= 0;
}
在我的代码中,我创建了一个新的 B 类对象并设置了一些属性:
var _b = new ClassB();
_b.name = 'mike'; -- name is a property of ClassA
_b.sex = 'none'; -- sex a property of ClassA
_b.age = 20; -- age is only a property of Classb
我正在调用一个只接受“类型”ClassA 对象的 API。所以我需要创建一个 ClassA 对象并将它的所有属性设置为来自 _b 的值,但只有属于 ClassA 的属性。
在本例中,新创建的 ClassA 对象将是: { 名称:'迈克', 性别:“无” }
有没有办法在不显式设置每个属性的情况下做到这一点?
var _a = new ClassA();
_a.name = _b.name;
_a.sex = _b.sex;
我不想每次向 ClassA 添加新属性时都必须更改代码
【问题讨论】:
-
你可能会觉得这个article很有趣。
标签: javascript class inheritance prototype base