Javascript - 实例化一个已修改其属性的对象

时间:2014-04-08 08:10:07

标签: javascript constructor prototype objectinstantiation

编辑: 假设我创建了一个构造函数来创建自己的用户定义对象:

var Person = Person(age) { this._age = living; };

我发现在运行时我需要添加由此构造函数创建的另一个属性的对象,所以我用它来添加属性原型。

Person.prototype.alive;

现在我唯一的构造函数只获得1个val,是否可以将相同的构造函数发送给另一个val?说出类似的话     var newPerson = Person(20,''yes);

2 个答案:

答案 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';显式设置它们。