object.prop 和对象 ["prop"] 之间的区别
Difference between object.prop and object["prop"]
我以前一直认为它们之间没有区别,但是看到这段代码后,我在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;
}
}
};
这不是。
感谢您的解释。
friends.x
和friends[x]
不是一回事,和friends['x']
是一回事。
当您使用 friends[x]
时,值 x
可以是一个变量(或任何表达式),但是当您使用 friends.x
时, x
是一个文字名称,它不会使用变量 x
.
正如@Guffa 已经解释的那样,friends.x and friends['x']
是相同的,这些方法的不同之处在于,当您使用 [] 这种语法时,您可以使用变量、'property like this'
或保留字,这当您不确切知道您需要的 属性 时很好。
我以前一直认为它们之间没有区别,但是看到这段代码后,我在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;
}
}
};
这不是。
感谢您的解释。
friends.x
和friends[x]
不是一回事,和friends['x']
是一回事。
当您使用 friends[x]
时,值 x
可以是一个变量(或任何表达式),但是当您使用 friends.x
时, x
是一个文字名称,它不会使用变量 x
.
正如@Guffa 已经解释的那样,friends.x and friends['x']
是相同的,这些方法的不同之处在于,当您使用 [] 这种语法时,您可以使用变量、'property like this'
或保留字,这当您不确切知道您需要的 属性 时很好。