0

javascript中object.name和object[“name”]之间的主要区别是什么。哪一个更好?

4

4 回答 4

2

.name必须使用有效的标识符。

[]可以使用任何字符串,包括变量中的字符串。

创建字符串的效率略低于使用标识符。

于 2013-09-24T14:42:29.967 回答
2

使用索引器表示法允许您将属性名称指定为任意表达式(例如变量),而点表示法需要源中的有效标识符。

您应该尽可能使用点符号。
如果需要指定运行时表达式或无效标识符,则应仅使用索引器表示法。

于 2013-09-24T14:42:40.793 回答
0

javascript中object.name和object["name"]的主要区别

没有区别。它们在 JS 对象中引用完全相同的元素。

哪一个更好?

object.name如果您知道要引用的元素的名称,则第一个会更好,因为它更清晰,更易于阅读。它的效率也稍高一些,但并没有太大的不同。

如果您想要一个动态名称(例如,来自循环的键,或从连接字符串构建的名称),那么您必须使用第二种语法object["name"]

于 2013-09-24T14:44:33.300 回答
0

使用括号表示法而不是点表示法对于以下情况很有用:

  • 当您需要遍历像 fields=["name","address",...] 这样的字符串数组时data[fields[i]]
  • 当您将使用闭包编译器编译代码时(点符号被重命名并中断)
  • 如果您想通过使用一种类型的点和其他类型作为括号来区分变量类型
  • 当用户/客户端将选择要使用的数据字段时。alert(data[arguments[1]])
于 2013-09-24T14:58:45.423 回答