访问对象中的属性

时间:2012-12-29 22:44:19

标签: javascript

  

可能重复:
  JavaScript property access: dot notation vs. brackets?

<script>      
  var foo = {          
    name: 'kevin'        
  };

  document.write(foo.name);
  document.write(foo['name']);

  var cool = 'name';
  document.write(foo.cool);

  document.write(foo[cool]);      
</script>
  1. 为什么foo.cool返回我未定义的foo[cool] returns me kevin
  2. 酷如何在foo对象中实际引用我的名字属性。

3 个答案:

答案 0 :(得分:4)

  1. cool未定义foo属性,因此foo.cool未定义。如果您执行了foo.name,则会返回kevin

  2. {li>

    coolfoo[cool]是您在其上方行中定义的那个,因此它实际上是foo['name'],已定义且值为kevin

答案 1 :(得分:1)

您可以访问属性...

  • 字面意思是他们的名字:property.name

  • 间接由表达式评估为其名称property[expr]

因此,如果表达式cool的值为'name',则foo[cool]foo['name']foo.name相同。

括号也允许......

1)更复杂的表达式,例如foo["data_"+variable],可以轻松访问名为data_something
的字段 2)非简单标识符的属性名称,例如,您可以说foo["I'm long!"]

我希望这个解释可以为你增添光彩。

答案 2 :(得分:1)

在var foo = {name:'kevin'};您将对象或字典存储到该变量...现在是一个键值对...所以您可以使用键访问对象的值...

因为它是一个键值对...你不能使用'。'来访问它。 operator ...因为foo不是一个类... foo的类型将是一个字典或对象......

所以,要访问您需要使用[] paranthesis ...