Javascript 使用点符号和括号符号访问对象

Javascript 使用点符号和括号符号访问对象,javascript,Javascript,有人能解释一下为什么我使用点符号访问对象时会收到未定义的消息,比如returncontacts[i].prop 但是,当我使用括号符号访问它时,比如return contacts[i][prop]它将返回对象的属性 顺便说一句,代码来自freecodecamp.org上的课程 代码如下: var联系人=[ { “名字”:“Akira”, “姓氏”:“莱恩”, “编号”:“0543236543”, “喜欢”:[“披萨”、“编码”、“布朗尼点数”] }, { “名字”:“哈利”, “姓氏”:“波特

有人能解释一下为什么我使用点符号访问对象时会收到未定义的消息,比如
returncontacts[i].prop

但是,当我使用括号符号访问它时,比如
return contacts[i][prop]它将返回对象的属性

顺便说一句,代码来自freecodecamp.org上的课程

代码如下:

var联系人=[
{
“名字”:“Akira”,
“姓氏”:“莱恩”,
“编号”:“0543236543”,
“喜欢”:[“披萨”、“编码”、“布朗尼点数”]
},
{
“名字”:“哈利”,
“姓氏”:“波特”,
“编号”:“0994372684”,
“喜欢”:[“霍格沃茨”、“魔法”、“海格”]
},
{
“名字”:“夏洛克”,
“姓氏”:“福尔摩斯”,
“编号”:“0487345643”,
“喜欢”:[“有趣的案例”,“小提琴”]
},
{
“名字”:“克里斯蒂安”,
“姓氏”:“Vos”,
“编号”:“未知”,
“喜欢”:[“JavaScript”、“游戏”、“狐狸”]
}
];
函数lookUpProfile(名称、属性){
//仅更改此行下方的代码
对于(变量i=0;i日志(lookUpProfile(“Bob”,“number”))
.prop
[prop]
是两个不同的东西

.prop
将获得按字面意思命名为prop的属性,例如:

const obj={
道具:1,,
傅:2
};
控制台日志(对象道具);
将记录1。然而,
[prop]
将获取其名称由
prop
变量的值表示的属性,例如:

const obj={
道具:1,,
傅:2
};
const prop=“foo”;
console.log(obj[prop]);
将记录
2


您可以在中了解更多。

谢谢您的回答,现在我明白了