4

我正在做codecademy的javascript教程并遇到以下问题:

变朋友 = {};
朋友.bill = {
  名字:“比尔”,
  姓氏:“盖茨”,
  号码:“(206)555-5555”,
  地址:['One Microsoft Way','Redmond','WA','98052']
};
朋友.史蒂夫= {
  名字:“史蒂夫”,
  姓氏:“工作”,
  号码:“(408)555-5555”,
  地址:['1 无限循环','Cupertino','CA','95014']
};
变量列表 = 函数(obj){
    for(obj 中的 var 属性){
        控制台.log(prop);
    }
};
变种搜索=功能(名称){
  for(朋友中的 var 道具){
        控制台.log(prop);
        console.log(friends.prop);//friends[prop] 会打印出来

  }


};
列表(朋友);
搜索(“史蒂夫”);

console.log(friends.prop) 将打印出 undefined 但如果我将其更改为

friends[prop],它将打印出账单和史蒂夫对象信息。

我看到w3c教程说两种访问方法是正确的,我想不通

问题是什么?

提前谢谢。

4

1 回答 1

2

数组符号 ( [prop]) 提供了额外的间接级别,一种反射。

所以,friends.bill并且friends["bill"]将是相同的。但是,如果你想做类似的事情var prop = 'bill',那么使用它的唯一方法就是 as friends[prop]

如果你尝试friends.prop,你实际上是在要求它寻找一个名为“prop”的朋友。

于 2013-02-24T19:18:26.303 回答