2010-11-24 10 views
1

変数を別々に格納するのに使用しました。例えば、古い要素がある場合は "ele_old"という変数に保存し、後で新しい要素がある場合は "ele_new"という変数に保存します。しかし、ちょうど私が1つの配列変数に2つの変数を保存することができますので、私はこのような何かを行うことができることを私に発生しました:javascript:変数または別々の変数の配列ですか?

eles_arr['old'] = //old element; 
eles_arr['new'] = //new element; 

私は同じ配列に同じ型の変数を配置することが可能になる。この方法より良い組織のために、例えば要素を1つの配列にまとめ、次に別の配列にidsを付けます。

問題は私がjavascript(および他のプログラミング言語、その点については全く新しい)です。これは、各変数を別々に保つよりも劣っているのだろうかと思います。これを行うことは問題を引き起こすでしょうか?たとえば、実行時のパフォーマンスが悪いとしますか?

ありがとうございます!

+0

これら2つのJavaScriptステートメントの間にHTMLタグはありますか? –

+0

@Sime:私はBigNameがコードブロックをどのようにフォーマットするかを知らないと思います。私は彼のために編集しました。 – RoToRa

+0

はい、申し訳ありません。 btw、改行を挿入する正しい方法は何ですか? – BigName

答えて

1

あなたがやっていることは、eles_arrオブジェクトのプロパティを設定することです。

eles_arr.oldEl = //old element 
eles_arr.newEl = //new element 

それは、配列に格納ていないので、それは分離の変数を有することに似ています - 彼らはちょうどeles_arrオブジェクトにグループ化している:それは言ってに似ています。配列にそれらを置くためにあなたがしたい:私は、配列内のこれら2つの変数を入れないと言われていること

eles_arr.push(oldEl); 
eles_arr.push(newEl); 

。わかりやすくするために、それらを分けておきます。同じ配列内に値を持つことは意味をなさないかもしれませんが、その位置を覚えているかもしれません。しかし、他の開発者は将来問題を引き起こす可能性があります。

最後に、 'old'と 'new'の2つの値の配列を持つことはあなたのケースでパフォーマンスに影響を与えませんが、可読性のために配列を使用することは推奨しません。

更新

は、私がと「古い」から変数を変更し「新しい」「oldEl」「newEl」に予約されたキーワードのサイムさんのコメントを反映するために、「新しいです」 。

+0

'new'は予約語です。プロパティ名として使用することはできません。 –

+0

@Sime:そうだと言っていたが、プロパティ名を同じにして、彼が持っていたものと私が提案したものの違いを簡単に比較できるようにした。私は更新を行います。 – McStretch

0

あなたが名前空間/モジュールを作成するためにオブジェクトを使用し、そのローカル/グローバル変数の数を減らすことができます。

var eles = {}; 

eles.foo = document.getElementById("foo"); 
eles.bar = document.getElementById("bar"); 

しかし、あなたは20個の以上の要素を持っていて、場合にのみ、それはおそらく理にかなっていますさまざまなイベントハンドラ/関数でそれらを必要とします。その場合、eles名前空間を作成し、それをすべての要素参照で埋め込むことが理にかなっています。

関連する問題