我知道我可以初始化JS对象的数组是这样的:初始化JavaScript对象数组及其属性的好方法?
var things = [
{
prop1: 'foo',
prop2: 'bar'
},
{
prop1: 'foo',
prop2: 'bar'
}
];
我想我会叫这些“匿名”的类型(很抱歉,我使用C#/。NET语言)。
如果我想让它们成为相同的原型,该怎么办?所以,我已经定义了一个构造函数:
var Thing = function Thing() {
};
Thing.prototype.prop1 = 'default value';
Thing.prototype.prop2 = 'default value';
现在,我想这两个项目在我上面的原代码是Thing
秒。有没有一个好的方法来做到这一点?
如果我猜的话,我也许会这样说:
var things = [
new Thing() {
prop1: 'foo',
prop2: 'bar'
},
new Thing() {
prop1: 'foo',
prop2: 'bar'
}
];
这基本上是C#对象初始化语法。我试图避免的是:
var thing1 = new Thing();
thing1.prop1 = 'foo';
thing1.prop2 = 'bar';
var thing2 = new Thing();
thing2.prop1 = 'foo';
thing2.prop2 = 'bar';
var things = [thing1, thing2];
编辑:
我也应该注意到,我的原型也包含共享某些功能。此外,在实际上我已经阵列嵌套3深,所以它更多的东西一样:
{
[
{
[
{},
{}
]
},
{
[
{},
{}
]
}
]
}
这就是为什么我为希望只是初始化所有内嵌这样的,而不是由线路设置每个属性线。
标记为答案,因为它在我的情况下效果最好。它也允许我做可选属性,如:'函数Thing(params){this.name = params.hasOwnProperty(“name”)? params.name:“有些默认”; }' – CodingWithSpike