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]);
推荐阅读
- git - 不想将 staging 分支上的所有功能都带入 master
- python - 即使在定义 form_valid 之后,Django 中的 IntegrityError
- excel - 搜索的参数数量错误
- c# - 如何使用 C# 在 XML 文档中添加新元素
- html - 在 Internet Explorer 中打开上下文菜单的标准键是什么
- bash - 使用 sudo 和不使用的不同行为
- c++ - 如何在动态打开的共享库入口处设置断点?
- javascript - 迭代包含要使用结果的对象的对象
- acumatica - 验证异常数据从所有字段、FormView、Grid 等中变得清晰
- php - 在本地和生产模式下的不同路径中可用的幼虫图像文件