2017-02-14 4 views
0

は、だから私はJavascriptを学んでいるように私は質問のトンを依頼するつもり理解オブジェクト

通常、私は、割り当てがどのように動作するかの変数を理解しますが、このコードは、なぜOBJ [B] =「Hello World」のビット混乱しているのですか?

var obj = { 
    a: "hello world", 
    b: 42 
}; 

var b = "a" ; 

obj[b]; // "hello world" < why is this Hello world? 
obj["b"]; // 42 
+2

あなたは 'a'プロパティにアクセスしているので...? – Li357

答えて

2
var obj = { 
    a: "hello world", 
    b: 42 
}; 

var b = "a" ; // this creates a new variable with string value "a" 

obj[b]; // this references the object property having the string value of 
     // variable b, which is "a" 
+0

私は、非常に面白いことがありますあなたに感謝します。それはどのようにb = "a"を知っていますか?オブジェクトの内部を参照している可能性がありますか、それとも重要ではありませんか?それはクールなトリックです – Shire

+0

オブジェクトキーは文字列(引用符で囲む)または変数(なし)として参照されます。 – isherwood

2

obj[b]あなたはJavaScriptで'a'

の可変b値が割り当てられているので、上記の又は使用として(アンドリュー言及)ブラケット表記法を使用してアレイのようなオブジェクトのプロパティにアクセスすることができるobj['a']と等価ですドット表記obj.a

2

[]表記は、オブジェクト内のプロパティ/メソッドに動的にアクセスすることを許可します。

レッツは、あなたがこのdictionnaryを持っていると言う:

var dict = { 
    foo : "bar", 
    hello : "world" 
}; 

function access(obj, property){ 
    return obj[property]; 
}; 

console.log(access(dict, "hello"));//world 

あなたはドット表記でこれを行うことはできません。

関連する問題