2009-09-17 41 views
9

Bằng cách này, tôi có thể có một hàm cho biết whatever_way_you_do_this = something. Điều này có thể không? Về cơ bản tôi có thể nói một hàm mà biến tôi muốn thiết lập bằng cách cho nó một chuỗi giữ tên của biến.Có cách nào để truy cập biến javascript bằng chuỗi có chứa tên biến không?

Cảm ơn

+0

Không trùng lặp với "Nhận biến toàn cầu theo chuỗi tên động trong JavaScript", câu hỏi này không nói gì về biến toàn cục. Và nó quan trọng. –

Trả lời

20

Given:

var x = { 
    myproperty: 'my value' 
}; 

Bạn có thể truy cập vào các giá trị bằng cách:

var value = x['myproperty']; 

Nếu y Bạn đang tìm kiếm một biến toàn cục, sau đó bạn sẽ kiểm tra vùng chứa của nó (window);

var value = window['x']['myproperty']; 
3

Nếu nó là một biến toàn cục có tên myVar, bạn có thể sử dụng:

window["myVar"] 
+1

Để xây dựng: hàm setGlobal (varName, varValue) {window [varName] = varValue; } –

6

Bạn có thể sử dụng

eval(variableString); 

Tiến hành một cách thận trọng như nhiều người không khuyên bạn sử dụng eval()

+0

Câu trả lời linh hoạt hơn. Câu trả lời tốt nhất hiện tại chỉ có thể truy cập các thuộc tính. Điều này có thể truy cập cả hai biến đồng bằng và thuộc tính 'eval (" x.myproperty ");'. Ngoài sự tò mò, tại sao eval không được khuyến nghị? –

+1

Bảo mật @BryantJackson là một lý do lớn, bạn thực sự không muốn tạo khả năng thực thi mã tùy ý trên máy sản xuất – nickford

2

Hàm eval có thể truy cập một biến từ một chuỗi chứa tên của biến.

eval('baseVariableName'+index) = 'something'; 
Các vấn đề liên quan