1

私はこの質問の名前を考えるために最善を尽くしました、私が助けるためにいくつかの用語を得ることができれば私はそれを変更します

私がそれを説明できる最良の方法はこれです

obj1 = {
    "a":{"var":1},
    "b":{"var":2},
    "c":{"var":3}
}

// What's the difference between
resulta = obj1['a']['var']

// and...
resultb = obj1.a.var

では、['']とを使用することの違いは何ですか。?

しか使えないと思います。関数を実行しますが、それが唯一の違いですか?

一方の方法はもう一方の方法よりも高速ですか?(少しでも?)

4

3 に答える 3

1

オブジェクトのプロパティキーを動的に構築する場合は、角かっこを使用した最初の方法が便利です。

var myDynamicKey = "a";
var result = obj[myDynamicKey]["var"];
var result = obj["someOtherKey_" + myDynamicKey]["var"];

プロパティが事前にわかっている場合は、2番目のものが間違いなく推奨されます。

それらを組み合わせて組み合わせることができることに注意してください。

var result = obj[myDynamicKey].var;

ドット表記を使用してプロパティにアクセスする方が速いことは間違いありませんが、それをサポートする実際のデータはありません。

于 2012-05-14T22:05:06.220 に答える
1

['']を使用すると、キーの名前を動的変数として渡すことができます...実行時に変更できます。.key.keyメソッドを使用する場合は、ビルド時にキーが何であるかを知る必要があります。

例:

var keys = ['name','phone','email'];
var object = {"name": ,"phone": , "email"};
function updateKeys(name,phone,email){
    for(var i = 0; i < keys; i++){
        object[keys[i]] = arguments[i]
    }
}

vs

function updateKeys(name, phone, email){
    object.name = name; 
    object.phone = phone;
    object.email = email
}

['']の方法ははるかに柔軟性があり、より多くのコードの再利用が可能です。ほとんどのライブラリは、これを使用するか、['']方法の自家製の代替品を使用します。

于 2012-05-14T22:06:11.853 に答える
0

これに関する情報を掲載しているさまざまなWebサイトがあります。

http://www.quirksmode.org/js/associative.html
または
http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)
または
http://www.mongodb.org/display/DOCS/Dot+Notation+ (Reaching + into + Objects)

最初に呼び出すdot notationのは、オブジェクトのメソッドとプロパティにアクセスするために使用でき、2番目は連想配列です。

于 2012-05-14T22:05:24.350 に答える