2012-02-07 10 views
0

すべてのインデックスが同じ値を持つ配列の作成を最小限に抑える方法を模索しています。それは可能ではないかもしれませんが、私は非常に便利だと思います。同じ値を持つ複数のインデックスを作成する - 簡略

は考えてみましょう:

var layer = []; 
layer['game'] = new Kinetic.Layer(); 
layer['navigation'] = new Kinetic.Layer(); 
layer['notification'] = new Kinetic.Layer(); 

(Kinetic.Layerがオブジェクトであり、しかし、私はそれは問題ではないと思われる)

のようなものを探して:

var layer['game','navigation','notification'] = new Kinetic.Layer(); 

はこれですでも可能ですか?もちろん、それは本当に必要なわけではありませんが、私はそれがとても便利だと思います。繰り返しコードはちょっとしたことです。

いいえ、単一のインデックスまたは変数を使用することはできません。そのオブジェクトはコードの後半で変更されるため、使用前に宣言する必要があります。

答えて

1

すべての3つの代わりに三つの異なる層を有する同じKinetic.Layerを指すであろうように速記は、同じではないであろう。

あなたの場合は、省略しないでください。

しかし、一般的に、あなたはこのように、複数の変数に同じ値を割り当てることができます。

layer['game'] = layer['navigation'] = layer['notification'] = value; 

サイドノートを:あなたは配列オブジェクト[]を使用して、文字列キーを割り当てている - これは厳密ではありません正解であり、汎用オブジェクト{}を代わりに使用する必要があります。

+0

ええと、考えてみると意味があります。正しい使い方の基本的な例を提供してもらえますか?お返事をありがとうございます! – Zar

+1

基本的に、任意の[スカラー値](http://en.wikipedia.org/wiki/Scalar_%28computing%29)を複数の変数に一度に安全に割り当てることができます。オブジェクトへの複数の参照を望む効果がない限り、コンポジット値(配列やより一般的には任意のタイプのオブジェクトなど)は使用できません(例: 'otherobj.linktovalue = thisobj.value = [1,2,3] ; ')。 –

0

私はこれがうまくいくと思いますが、私はそれを見た場所を思い出すことができませんが、どこかで蹴っているのを見ました。この場合

var layer = []; 
layer['game'] = layer['navigation'] = layer['notification'] = new Kinetic.Layer(); 
関連する問題