4

私はcodecademyのjavascriptチュートリアルを実行していて、次のような問題が発生しています。

var friends = {};
friends.bill = {
  firstName: "Bill"、
  lastName: "Gates"、
  番号: "(206)555-5555"、
  住所:['One Microsoft Way'、'Redmond'、'WA'、 '98052']
};
friends.steve = {
  firstName: "スティーブ"、
  lastName: "ジョブ"、
  番号: "(408)555-5555"、
  住所:['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]が出力されます

  }


};
リスト(友達);
search( "スティーブ");

console.log(friends.prop)は未定義で出力されますが、これを次のように変更すると

friends [prop]、請求書を印刷し、オブジェクト情報をスティーブします。

w3cチュートリアルで、アクセス方法の2つが正しく、理解できないと書かれているのがわかります

何が問題ですか?

事前にThx。

4

1 に答える 1

2

配列表記([prop])は、反射の一種である追加レベルの間接参照を提供します。

だから、friends.billそしてfriends["bill"]同じだろう。ただし、のようなことをしたい場合、var prop = 'bill'これを使用する唯一の方法はとしてfriends[prop]です。

を試してみるとfriends.prop、文字通り「prop」という名前の友達を探すように求められています。

于 2013-02-24T19:18:26.303 に答える