我曾经相信它们之间没有区别但是在看到这段代码之后,我在Javascript中有关对象的所有信息都失败了。
var search = function(name) {
for(var x in friends) {
if(friends[x].firstName === name) {
console.log(friends[x]);
return friends[x];
}
}
};
此代码有效。但
var search = function(name) {
for(var x in friends) {
if(friends.x.firstName === name) {
console.log(friends.x);
return friends.x;
}
}
};
这不是。
感谢您的解释。
答案 0 :(得分:7)
friends.x
与friends[x]
不同,它与friends['x']
完全相同。
当您使用friends[x]
时,值x
可以是变量(或任何表达式),但是当您使用friends.x
时,x
是一个文字名称,它赢了不要使用变量x
。
答案 1 :(得分:0)
正如@Guffa已经解释的那样,friends.x and friends['x']
是相同的,这些方法的不同之处在于当你使用[]这种语法时你可以使用变量,'property like this'
或保留字,这很好当你不确切知道你需要的财产时。