2016-07-13 23 views
0

配列内にオブジェクトを作成したいとします。このコードはOKですか?配列内のオブジェクトを作成する

アレイ内部オブジェクトを作成していない
this.bullets.splice(0, 0, new Component(this.y - 3, this.x + (this.width/2), 2, 2, "bullet")); 
+5

試してみてください。コンソール[F12]を見てください。 –

答えて

1

、それは、式の中で、アレイにそれを置く機能に供給された結果オブジェクトを作成します。

これは正常ですが、関数呼び出しの一部として使用される他の式とまったく同じです。


サイドノート:.splice(0, 0, x)(インデックス0の項目を挿入するダウンアレイに既に任意の他のシャッフリング)はわずかにより慣用的.unshift(x)書き込まれます。 spliceには何も間違っていません。

+1

ありがとうございます。 – daniel098

-1

javascriptの配列は0から始まるインデックス配列です。つまり、数値キーのみを持つことができます。あなたが望むものを達成するためのよりよい方法は、オブジェクト表記法(したがってthis.bullets = {};)を使って別のjavascriptオブジェクトを使用することです。キーの数値リテラルと文字リテラルの両方を混在させることができます。

+1

1.配列を使用したくないと思うOPの質問には何がありますか? 2. * "...数字キーのみを持つことができます..." *は間違っています。実際には、通常の配列は実際には配列ではないので(数字のキーは決して通常の配列にはありません)(http://blog.niftysnippets.org/2011/01/myth-of-arrays.html)、プロパティ名は文字列です(シンボルの場合を除く)。また、すべての桁ではない通常の配列のプロパティを持つことができます。 'var a = []; a.foo = "bar";は完全に有効です(そして時には便利です)。 *(私のDVDではない)* –

+0

javascript配列は実際にはオブジェクトです(あるいは、すべてがjavascriptにあります)。そう、var a = []; a.foo = "bar"など。正しいですが、javascript配列内の値を混在させることができます(私は別の言語、謝罪と混同していました)。 – paddybasi

+0

さて、*ほとんど*何かは:-)いくつかの事柄(数字、文字列、ブールプリミティブ、...)は、必要なときに短時間オブジェクトに昇格します。 –

関連する問題