编辑:假设我创建了一个构造函数来创建我自己的用户定义对象:
var Person = Person(age) { this._age = living; };
我发现在运行时我需要向这个构造函数创建的对象添加另一个属性,所以我用它来添加原型的属性。
Person.prototype.alive;
现在我唯一的构造函数只有 1 个 val,是否可以向同一个构造函数发送另一个 val?说类似 var newPerson = Person(20,''yes);
编辑:假设我创建了一个构造函数来创建我自己的用户定义对象:
var Person = Person(age) { this._age = living; };
我发现在运行时我需要向这个构造函数创建的对象添加另一个属性,所以我用它来添加原型的属性。
Person.prototype.alive;
现在我唯一的构造函数只有 1 个 val,是否可以向同一个构造函数发送另一个 val?说类似 var newPerson = Person(20,''yes);
如果您考虑将不同的参数传递给构造函数,那么编写构造函数来接受单个对象说明符会更友好
function Person({paramZ: val, paramX: val})
是否可以向同一个构造函数发送另一个 val?说类似
var newPerson = Person(20,'yes');
不,您拥有的构造函数只接受一个参数。
但是,您可以在您的情况下重新定义构造函数:
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';
您知道的每个旧实例明确设置它们。