编辑: 假设我创建了一个构造函数来创建自己的用户定义对象:
var Person = Person(age) { this._age = living; };
我发现在运行时我需要添加由此构造函数创建的另一个属性的对象,所以我用它来添加属性原型。
Person.prototype.alive;
现在我唯一的构造函数只获得1个val,是否可以将相同的构造函数发送给另一个val?说出类似的话 var newPerson = Person(20,''yes);
答案 0 :(得分:0)
如果考虑将不同的参数传递给构造函数,那么接受单个对象说明符会更友好的写入构造函数
function Person({paramZ: val, paramX: val})
答案 1 :(得分:0)
是否可以将相同的构造函数发送给另一个val?说
之类的东西var newPerson = Person(20,'yes');
没有。你拥有的构造函数只接受一个参数。
您可以redefine the constructor,在您的情况下:
Person = (function (original) {
function Person(age, alive) {
original.call(this, age); // apply constructor
this.alive = alive; // set new property from new parameter
}
Person.prototype = original.prototype; // reset prototype
Person.prototype.constructor = Person; // fix constructor property
return Person;
})(Person);
请注意,在此之前创建的旧对象将自动获取分配的新值。对于您知道的每个旧实例,您需要为oldPerson.alive = 'no';
显式设置它们。