为什么有时使用点表示法访问对象属性会返回未定义?

Ali*_*taf 3 javascript

我编写的这个 for-in 循环为所有对象属性打印“未定义”值:

let user = {
  id: 1,
  name: "Some name"
};
for (let prop in user)
  console.log(prop + ": " + user.prop);
Run Code Online (Sandbox Code Playgroud)

控制台输出:

id: undefined
name: undefined
Run Code Online (Sandbox Code Playgroud)

小智 5

您不能使用变量以这种方式访问​​对象属性。它认为您正在尝试访问名为“prop”的属性。使用变量通过名称获取对象属性的方式如下:

let user = {
  id: 1,
  name: "Some name"
};
for (let prop in user)
  console.log(prop + ": " + user[prop]);
Run Code Online (Sandbox Code Playgroud)