は、私はこのように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を入れ子になった:なぜ私だけinitにインラインで、このようなすべてのものを期待して、ラインで各プロパティラインを設定していないようである
{
[
{
[
{},
{}
]
},
{
[
{},
{}
]
}
]
}
。
これは私の状況で一番効果があったため、答えとしてマークしています。また、以下のようなオプションのプロパティを実行することもできました。 'function Thing(params){this.name = params.hasOwnProperty(" name ")? params.name: "some default"; } ' – CodingWithSpike