This question already has answers here:
JavaScript property access: dot notation vs. brackets?
                                
                                    (13个回答)
                                
                        
                                5年前关闭。
            
                    
我尽力想出这个问题的名称,如果可以得到一些术语的帮助,我将对其进行更改。

我可以形容的最好方法是

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

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

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


因此,使用['']和之间有什么区别。 ?

我知道您只能使用。运行功能,但这是唯一的区别吗?

一种方法比另一种更快吗? (甚至一点?)

最佳答案

如果要动态构建对象的属性键,则第一个使用方括号的方法很方便:

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


如果您事先知道属性,则绝对首选第二个。

请注意,您可以将它们混合并匹配:

var result = obj[myDynamicKey].var;


我敢打赌,使用点表示法访问属性的速度更快,但是我没有实际的数据来支持这一点。

10-05 21:04
查看更多