2008-10-04 43 views
9

Trong javascript, tôi có một đối tượng:Làm cách nào để tham chiếu động một đối tượng?

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

Bây giờ, tôi muốn làm điều này

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

alert(obj.a); 

Nhưng tất nhiên nó không hoạt động. Điều gì sẽ là cách chính xác để tham khảo đối tượng này động?

Trả lời

16

trả lời ngắn gọn: obj[a]

câu trả lời dài: obj.field chỉ là một viết tắt cho obj["field"], đối với trường hợp đặc biệt mà chính là một chuỗi liên tục mà không có dấu, dấu chấm, hoặc những điều khó chịu khác. trong câu hỏi của bạn, khóa không phải là một hằng số, vì vậy chỉ cần sử dụng cú pháp đầy đủ.

2

Như một mặt lưu ý, các biến toàn cầu được gắn vào các "cửa sổ" đối tượng, vì vậy bạn có thể làm

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

này sẽ cảnh báo "hello, hello, hello"

Các vấn đề liên quan