var person = {name: "Johen", address: "USA"}
以下两种访问个人属性的方式有什么区别吗?是否有任何性能影响?访问JS属性 - data.att与data [“attr”]?
var name = person.name
var address = person["address"]
谢谢!
var person = {name: "Johen", address: "USA"}
以下两种访问个人属性的方式有什么区别吗?是否有任何性能影响?访问JS属性 - data.att与data [“attr”]?
var name = person.name
var address = person["address"]
谢谢!
他们是平等的。如果密钥包含不允许在字符串外的字符,则需要数组语法。这同样适用,如果你想使用动态密钥 - 很久以前曾经使用凌乱黑客喜欢foo = eval('obj.' + propname);
但foo = obj[propname];
人是好得多当然
的IMO的obj.property
语法是好得多,因为它是更短,更自然。
对象属性的“点”和“方括号”访问方法在ECMA-262第11.2.1节中有描述。点访问只能在名称符合标识符允许字符规则的有限情况下使用。
方括号表示法可用于从表达式评估名称的位置。它本质上说,“计算表达式并将结果作为属性名称”这样你就可以做这样的事情:
function foo() {return 'foo'}
var obj = {};
obj[foo()] = 'foo';
阵列属性完全相同的方式为对象属性访问 - 数组只是一种特殊的对象长度属性。
差异:不。性能:您可以尝试使用http://jsperf.com/ –