2012-04-27 8 views
5

私はfirefox拡張子(ここでは:https://github.com/mozilla/prospector/blob/master/oneLiner/bootstrap.js#L34)からいくつかのコードを探していましたが、私は以前はjavascriptで見たことがないものを見ました。プログラマは、変数名として連想配列を使用しています。誰かがこの変数参照がどのように機能するかを私に説明することができますか?変数名として連想配列を使用していますか? - javascript

const {classes: Cc, interfaces: Ci, utils: Cu} = Components; 

私はこのページを読んでから「ポーラ」理解:https://developer.mozilla.org/en/JavaScript/Reference/Statements/const

が、どのようにそれが変数名として連想配列オブジェクトを使用することができますか?

また、アソシエイティブな配列のキー名は、Componentsメソッドへの参照として使用されているようです(ここでは、https://developer.mozilla.org/en/Components_object)。私はいつもキー名が最初にやっていなければならないと考えていましたが、これはコンポーネントクラスメソッドへの参照の値を最初に入れて、Ccがその値にある場所にあってもCcの名前に割り当てますコンポーネントのutilsメソッドの場合は、コンポーネントインタフェースメソッド& CuのCiが使用されます)。

+2

、通常の用語を読んでいる1のために、多くの楽しみのように見えます「連想配列」と呼ばれるものは、単に「オブジェクト」(または時には「マップ」または「辞書」)です。私たちは「連想配列」とは言わない。なぜなら、「連想配列」に関係すると思っている知識のない人たちには混乱を招くからです。 –

+2

[ブロックによる定数宣言]の重複の可能性があります(http://stackoverflow.com/questions/10199229/constant-declaration-with-block) –

答えて

6

あなたが見ていることは1.7 https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7

詳細については、このマニュアルを参照してください分割代入は、その鏡の構文を使用して配列 やオブジェクトからデータを抽出することが可能となるjavascriptのため、それが利用可能で、分割代入です配列の構築と オブジェクトリテラル。 オブジェクトと配列のリテラル式を使用すると、データのアドホックパッケージを簡単に作成できます。これらのパッケージを のデータとして作成したら、使いたい方法で使用できます。あなたは関数から を返すことさえできます。

+0

ビッグ+1。そして、明らかに、ECMAScript6は、いくつかの種類の破壊手続きを持っていますが、Mozillaのものと完全に互換性がないかもしれません。 –

+0

リンクありがとうございます。私は投稿する前にgoogleを検索したが、何も出てこなかった。この例はとてもうまく説明できます:https://developer.mozilla.org/ja/JavaScript/New_in_JavaScript/1.7#Looping_across_values_in_an_array_of_objects それでもキーを交換するのは変です。 – Yansky

0

うん、これをチェックアウト:

var abc = {classes: "ABC", interfaces: "DEF", utils: "XYZ"}; 
const {classes: Cc, interfaces: Ci, utils: Cu} = abc; 
console.debug("test: ", Cc, Ci, Cu); 

は特に何」のコード:) JavaScriptで

+0

最悪の点は、Firefoxとのみ互換性があることです。だから基本的には、あなたの読者に別の言語を習得させて(そして別々にしておく) –

+0

さて、私はこの[リンク](http://therelentlessfrontend.com/2010/10/02/how-to-get-the-javascript-version/)を試してみました。とfirefox - 1.8、しかし、この声明はクロムでは機能しません...さらにIE9は1.3しかサポートしません:D – Igor

関連する問題