2011-01-07 6 views
5

Actionscript 3では、これが好ましいですか?これはどれですか、a = []またはa = new Array()ですか?

a = [1,2,3]; 

または

a = new Array(1,2,3); 

個々の引数としてデータをArrayコンストラクタを呼び出すと遅く、他の方法は、ダイレクト・メモリ・コピーのいくつかの並べ替えになることであろうと思われます。

ほとんどの場合、どちらを使用するのが良いのか、その理由を知っていますか?

答えて

8

より簡潔で読みやすい構文なので、大括弧が好きです。

ほとんどのECMAScriptバリアントでは、Array = function() { ... };を実行してデフォルトの配列コンストラクタを置き換えることができるため、後者の構文は実際は少し遅くなります。そのフォームを使用するには、グローバルArray関数を最初に検索する必要があります。

+0

興味深い。個人的に、私は新しいArray(args)が読みやすくなると感じています。 – TheDarkIn1978

+0

私はそれが不必要に冗長で気を散らすことがわかります。 BASIC由来の言語が好きではない理由の1つです。 – cdhowie

5

配列リテラル(var a:Array = [])を使用すると、常に新しいArray()というよりも高速になりますが、これはベストプラクティスと考えられます。

7

ほとんどの場合、混乱を避けるために、大括弧を使用します。

配列コンストラクタは、2つの形態があります値として列挙されたパラメータを持つ

  • Array(...)
  • Array(size:int)

最初のフォーム作成し、アレイを、第二の形態は、その有する配列を作成します要素の数あなたが単一のintの配列を初期化するまで、それはすべて良いことだ:

  • new Array() => []
  • new Array("foo") => ["foo"]
  • new Array("foo", "bar") => ["foo", "bar"]
  • new Array(42,43) => [42,43]
  • new Array(42) => [undefined, ...undefined x 40..., undefined]

矛盾が私にカップルをビットこと私はちょうど配列の使用を停止する前に非常にまれな場合を除き、N個の未定義要素を持つ配列が必要な場合を除いて、コンストラクタです。

関連する問題