首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问JS属性- data.att与data["attr"]?

访问JS属性- data.att与data["attr"]?
EN

Stack Overflow用户
提问于 2011-11-02 17:17:14
回答 2查看 68关注 0票数 0
代码语言:javascript
运行
复制
var person = {name: "Johen", address: "USA"}

以下两种访问人员属性的方式有区别吗?是否有任何性能影响?

代码语言:javascript
运行
复制
var name = person.name
var address = person["address"]

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-11-02 17:18:38

它们是相等的。但是,如果键包含字符串之外不允许的字符,则需要使用数组语法。如果您想使用动态密钥,这一点同样适用--很久以前,人们习惯于使用像foo = eval('obj.' + propname);这样的杂乱无章的工具,但foo = obj[propname];当然要好得多

IMO的obj.property语法要好得多,因为它更短更自然。

票数 2
EN

Stack Overflow用户

发布于 2011-11-02 17:31:18

对象属性的“点”和“方括号”访问方法在ECMA-262第11.2.1节中进行了描述。只有在名称符合标识符允许的字符规则的情况下,才能使用点访问。

在从表达式计算名称时,可以使用方括号表示法。它本质上是说“计算表达式并将结果用作属性名”,因此您可以执行以下操作:

代码语言:javascript
运行
复制
function foo() {return 'foo'}
var obj = {};
obj[foo()] = 'foo';

数组属性的访问方式与对象属性完全相同-数组只是具有特殊长度属性的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7977953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档