我正在进行codecademy的javascript教程并遇到以下问题:
var friends = {}; friends.bill = { firstName: "Bill", lastName: "Gates", number: "(206) 555-5555", address: ['One Microsoft Way','Redmond','WA','98052'] }; friends.steve = { firstName: "Steve", lastName: "Jobs", number: "(408) 555-5555", address: ['1 Infinite Loop','Cupertino','CA','95014'] }; var list = function(obj){ for(var prop in obj){ console.log(prop); } }; var search = function(name) { for(var prop in friends){ console.log(prop); console.log(friends.prop);//friends[prop] will print out } }; list(friends); search("Steve");
console.log(friends.prop)将打印出undefined但如果我将其更改为
朋友[prop],它会打印出账单并窃取对象信息。我看到w3c教程说两种访问方法是正确的,我无法弄清楚
问题是什么?
提前谢谢。答案 0 :(得分:2)
数组表示法([prop]
)提供了额外的间接级别,即一种反射。
因此,friends.bill
和friends["bill"]
会完全相同。但是,如果你想做var prop = 'bill'
之类的事情,那么使用它的唯一方法就是friends[prop]
。
如果您尝试friends.prop
,那么您确实要求它寻找名为“prop”的朋友。