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

标签 javascript

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

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

控制台输出:

id: undefined
name: undefined

最佳答案

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

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

关于javascript - 为什么有时使用点表示法访问对象属性会返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228499/

相关文章:

javascript - mathjax 公式的下拉菜单

加载时的 Javascript 全屏图像,2 秒后消失(空闲时间后的屏幕保护程序)

javascript - 修复 iOS 上的悬停行为

javascript - json 列表过滤器包含给定文本

javascript - 将 blob(image) 传递给 php/laravel 并获取输入并保存

javascript - document.getElementById 不适用于 textarea

javascript - 如何路由 Node.js 单页应用程序?

javascript - 是否可以在 JavaScript 中为所有 "classes"添加实例方法?

javascript - d3.js 奇怪的旋转行为

javascript - 在同一网页上使用多个audio.js 播放列表播放器?