簡體   English   中英

如何動態引用對象?

[英]How do I reference an object dynamically?

在Javascript中,我有一個對象:

obj = { one: "foo", two: "bar" };

現在,我想要做到這一點

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

但當然它不起作用。 動態引用此對象的正確方法是什么?

簡短回答: obj[a]

很長的答案: obj.field只是obj["field"]的簡寫,對於特殊情況,鍵是一個沒有空格,圓點或其他令人討厭的東西的常量字符串。 在你的問題中,鍵不是常量,所以只需使用完整的語法。

像這樣:

obj[a]

作為旁注,全局變量附加到“窗口”對象,因此您可以這樣做

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

這會警告“你好,你好,你好”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM