使用for ... in访问属性

Zac*_*Gao 0 javascript

我正在尝试访问此对象的属性:

var obj = {hello: 1, world: 2};
Run Code Online (Sandbox Code Playgroud)

这让我回复未定义:

function foo(a) {
  for(property in a) {
    console.log(a.property);
  }
  return "foo";
}

foo(obj);
Run Code Online (Sandbox Code Playgroud)

这给出了预期的结果:

function bar(a) {
  for(property in a) {
    console.log(a[property]);
  }
  return "bar";
}

bar(obj);
Run Code Online (Sandbox Code Playgroud)

为什么对foo的调用不起作用,而对bar的调用允许我访问属性?

Tob*_*ias 5

因为a.property是一样的a['property'],不是a[property].所以你实际上试图访问属性"属性".

您的第二个代码段使用该变量property,前者使用该属性property.