2014-04-08 21 views
0

编辑的对象: 说我创建一个构造函数来创建自己的用户定义的对象:使用Javascript - 实例,它的属性已经修改

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

和运行过程中我发现,我需要添加到由这个构造函数创建的另一个属性的对象,所以我用它来添加属性的原型。

Person.prototype.alive; 

现在我唯一的构造函数只有1 val,是否有可能发送相同的构造函数另一个val?说一些像 var newPerson = Person(20,''yes);

+1

你是指通过发送这个类的构造函数值吗? – Sarath

+3

你的问题和你的例子都是不可理解的。您正在讨论创建_object_并通过创建_constructor_来演示它。那么你在构造函数中使用一个未定义的变量,而忽略它的参数;那么你会谈论“向这个构造函数发送值”,这意味着什么都没有。考虑编辑你的问题并更清楚地描述你的问题。 – lanzz

+0

您需要[代理](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy“代理 - JavaScript | MDN”)。不幸的是,它们还没有在JavaScript中实现。你的用例是什么?我相信必须有更简单的方法来解决你的问题。 –

回答

0

is it possible to send that same constructor another val? say something like 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';

0

如果您考虑通过不同参数的构造函数,这将是友好写构造函数接受单个对象符

function Person({paramZ: val, paramX: val}) 
相关问题