gpt4 book ai didi

javascript - 初始化 JavaScript 对象数组及其属性的好方法?

转载 作者:可可西里 更新时间:2023-11-01 01:17:19 25 4
gpt4 key购买 nike

我知道我可以像这样初始化一个 JS 对象数组:

var things = [
{
prop1: 'foo',
prop2: 'bar'
},
{
prop1: 'foo',
prop2: 'bar'
}
];

我想我会称这些为“匿名”类型(抱歉,我使用的是 C#/.NET 语言)。

如果我希望它们具有相同的原型(prototype)怎么办?所以我定义了一个构造函数:

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];

编辑:

我还应该注意,我的原型(prototype)还包含一些共享的功能。实际上我还有嵌套 3 层的数组,所以它更像是:

{
[
{
[
{},
{}
]
},
{
[
{},
{}
]
}
]
}

这就是为什么我希望像这样内联初始化所有内容而不是逐行设置每个属性。

最佳答案

var Thing = function(params) {
this.prop1 = params.prop1;
this.prop2 = params.prop2;
};

var things = [
new Thing({
prop1: 'foo',
prop2: 'bar'
}),
new Thing({
prop1: 'foo',
prop2: 'bar'
}),
];

关于javascript - 初始化 JavaScript 对象数组及其属性的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12773812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com