2017-06-28 14 views
1

これはなぜ機能しませんか?なぜ私は[val]ではなく.valでjsオブジェクトにアクセスできますか?

function phoneticLookup(val) { 
var result = ""; 
var lookup = { 
"alpha": "Adams", 
"bravo": "Boston", 
"charlie": "Chicago", 
"delta": "Denver", 
"echo": "Easy", 
"foxtrot": "Frank" 
}; 
result = lookup.val; 
return result; 
} 
phoneticLookup("charlie"); 

が、これは

function phoneticLookup(val) { 
var result = ""; 
var lookup = { 
"alpha": "Adams", 
"bravo": "Boston", 
"charlie": "Chicago", 
"delta": "Denver", 
"echo": "Easy", 
"foxtrot": "Frank" 
}; 
result = lookup[val]; 
return result; 
} 
phoneticLookup("charlie"); 

なぜそれがオブジェクトにアクセスするとき、ドット演算を使用すると、ダイナミック入力では動作しないことがあるのですか?

+1

'lookup.val'は' lookup ["val"] ' –

答えて

0

lookup.val存在しないルックアップを探しているのですがなぜそれが動作しないのか、ルックアップする必要がありますか?また、[val] = lookup ['charlie']を検索するとうまくいきます。

+0

ahと同じです。あなたが正しい。ありがとう! – earthyearth

+0

あなたは大歓迎です、もしそれが助けられたら、答えを受け入れることを検討してください。乾杯! – Dij

-1

オブジェクトにvalという名前のプロパティはありません。 object.valにアクセスしようとすると、流暢な言語でオブジェクト内のvalという名前のプロパティが検索されます。

動的にプロパティ名を渡します。もう1つは、文字列名でプロパティにアクセスしようとしているように動作しています。

関連する問題