JavaScript cung cấp cho bạn nhiều cách để khai báo đối tượng. Khi bạn có hầu hết các dữ liệu có sẵn trong tầm tay, thuận tiện nhất (theo ý kiến của tôi) như sau:Cú pháp khai báo đối tượng JavaScript - tên biến là thuộc tính
var person = {
name: 'John',
age: 23
}; // "object literal syntax"
Một điều tò mò về cú pháp này là nó giống hệt như thế này:
var person = {
'name': 'John',
'age': 23
}; // "object literal syntax"
Tức là, bạn có thể sử dụng dấu ngoặc kép hoặc bỏ qua chúng cho tên thuộc tính.
Khi so sánh rằng với cách thiết lập một công trình bất động sản duy nhất, bạn có hai lựa chọn:
person.birthday = "January 12"; // "dot syntax"
hoặc
person['birthday'] = "January 12"; // "array syntax"
Các "dot cú pháp" chỉ hoạt động khi các toán hạng bên phải là thực tế tên tài sản. Nếu bạn muốn sử dụng một biến cho tên thuộc tính, bạn phải sử dụng "mảng cú pháp", ví dụ:
var prop = "birthday";
person[prop] = "January 12";
Bây giờ, là nó có thể sử dụng một biến cho tên thuộc tính trong "đối tượng cú pháp đen" ? Vì nó không quan trọng nếu bạn trích dẫn các tên thuộc tính, dường như không có cách nào rõ ràng để sử dụng một biến ở đó. Tôi đang tìm một cái gì đó như thế này:
var prop = "birthday";
var person = {
name: 'John',
age: 23,
(prop): 'January 12'
};
Ở đây tôi đang sử dụng (prop) như cú pháp tưởng tượng được sử dụng để biểu thị rằng đây là một biến và không phải là một chuỗi chữ.
Cảm ơn.
Tôi nghĩ rằng bạn sẽ phải dính vào cú pháp mảng .. có lẽ eval (+ chống đỡ +'= "12 tháng một "') sẽ làm thủ thuật, nhưng tôi không nghĩ đây là giải pháp tối ưu –
@PhilippeBoissonneault - Ack! Đánh giá là * không * cần thiết ... vui lòng không sử dụng nó trong ngữ cảnh này. –
Bạn đang tìm kiếm tương đương với biến số biến PHP: '$ foo = bar; $ bar = '123'; echo $$ foo; // thực sự hiển thị '123'' – Ray