2012-10-20 24 views
5

thể trùng lặp:
What is the difference between object keys with quotes and without quotes?Khóa đối tượng JS có hoặc không có dấu ngoặc kép?

là sự quan tâm, đúng cách là gì, viết các phím đối tượng trong dấu ngoặc kép hay không? đó là

var obj = { 
    "name": "Jhon" 
} 

hoặc

var obj = { 
    name: "Jhon" 
} 

ví dụ, từ mã php echo json_encode(array("a"=>"aaa","b"=>"bbb")); kết quả là đối tượng người có các phím với dấu ngoặc kép. Nhưng ví dụ xem jquery animate, trong tài liệu là chìa khóa mà không có dấu ngoặc kép, (Điều này cũng định dạng đối tượng JS, phải không?)

   $("#someElement").animate({ 
        marginLeft: "200px" 
       }, 
       { 
        duration: 1000 
       }); 

Vì vậy, cách đúng đắn hơn là những gì?

+1

Đọc tốt về JSON vs đối tượng theo nghĩa đen: http://benalman.com/news/2010/03/theres-no-such-thing-as- a-json/ –

Trả lời

7

Đừng nhầm lẫn giữa đối tượng JSON và đối tượng Javascript. Đối tượng JSON cơ bản chỉ là một chuỗi và cú pháp của nó đòi hỏi phải có các dấu ngoặc kép thích hợp. Tuy nhiên đối với các đối tượng javascript trích dẫn xung quanh các thuộc tính của nó là không cần thiết. Nhưng trong một số trường hợp, bạn phải sử dụng chúng, ví dụ:

var test = { 
    "with spaces": 12 
} 
+0

O, phải tôi nhầm lẫn giữa các đối tượng JSOn và JS. Như tôi đã hiểu, trong mọi trường hợp, tốt hơn là viết các khóa trong dấu ngoặc kép, vì vậy, cảm ơn. – RIKI

+2

Không, tốt hơn không nên sử dụng dấu ngoặc kép. Thực sự. Bạn chỉ cần các ký tự thừa này trong trường hợp tên thuộc tính không phải là mã định danh hợp lệ: "có dấu cách", "hello-john", "123test", v.v. – dfsq

+0

Đã hiểu, cảm ơn rất nhiều. – RIKI

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