Sé que puedo init una matriz de objetos JS así:¿Es una buena forma de iniciar una matriz de objetos de JavaScript y sus propiedades?
var things = [
{
prop1: 'foo',
prop2: 'bar'
},
{
prop1: 'foo',
prop2: 'bar'
}
];
supongo que yo llamaría estos tipos anónimos '' (lo siento, estoy usando C#/NET.).
¿Qué sucede si quiero que estos sean del mismo prototipo? Así que he definido un constructor:
var Thing = function Thing() {
};
Thing.prototype.prop1 = 'default value';
Thing.prototype.prop2 = 'default value';
Ahora quiero tanto los artículos en mi código original anterior a ser Thing
s. ¿Existe una forma correcta de hacer esto?
Si tuviera que adivinar, diría que tal vez algo como:
var things = [
new Thing() {
prop1: 'foo',
prop2: 'bar'
},
new Thing() {
prop1: 'foo',
prop2: 'bar'
}
];
que es básicamente sintaxis de C# inicializador de objeto. Lo que estoy tratando de evitar es:
var thing1 = new Thing();
thing1.prop1 = 'foo';
thing1.prop2 = 'bar';
var thing2 = new Thing();
thing2.prop1 = 'foo';
thing2.prop2 = 'bar';
var things = [thing1, thing2];
Editar:
También debo señalar que mis prototipos también contienen algunas funciones que son compartidos. También en la actualidad he matrices anidadas 3 de profundidad, por lo que es algo más como:
{
[
{
[
{},
{}
]
},
{
[
{},
{}
]
}
]
}
que es por lo que la esperanza de que todo acaba de init en línea como esta y no establecer cada línea hotel en la línea.
Marcando esto como la respuesta porque funcionó mejor en mi situación. También me permitió hacer propiedades opcionales, como: 'function Thing (params) {this.name = params.hasOwnProperty (" name ")? params.name: "algunos valores predeterminados"; } ' – CodingWithSpike