我不喜欢以下内容,因为它多次重复Child.prototype
:
function Parent(a)
{
this.a = a;
}
function Child(a, b)
{
Parent.call(this, a);
this.b = b;
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
Child.prototype.childValue = 456;
Child.prototype.anotherChildValue = 457;
Child.prototype.yetAnotherValue = 458;
Child.prototype.IHateToWriteChildPrototypeEachTime = 459;
// ...gazillion more Child.prototype.xxx
我希望以下方式指定新成员:
{
constructor: Child,
childValue: 456,
anotherChildValue: 457,
yetAnotherValue: 458,
ILoveThisSinceItsSoTerse: 459,
// ...gazillion more
}
有没有一种漂亮,干净,高效的方法,而不需要创建辅助功能并重新发明轮子?
答案 0 :(得分:0)
你可以制作一个非常简单的extend
函数来做你想做的事情:
var extend = function(obj, methods) {
for(var key in methods) {
if(methods.hasOwnProperty(key)) {
obj[key] = methods[key];
}
}
}
然后你可以说:
extend(Child.prototype, {
constructor: Child,
foo: function() { }
});