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.xfriends[x]不是一回事,和friends['x']是一回事。

当您使用 friends[x] 时,值 x 可以是一个变量(或任何表达式),但是当您使用 friends.x 时, x 是一个文字名称,它不会使用变量 x.

正如@Guffa 已经解释的那样,friends.x and friends['x'] 是相同的,这些方法的不同之处在于,当您使用 [] 这种语法时,您可以使用变量、'property like this' 或保留字,这当您不确切知道您需要的 属性 时很好。