Có thể sử dụng tên reserved word
làm tên thuộc tính của đối tượng không?sử dụng các từ dành riêng làm tên thuộc tính, được xem lại
Sự cố này đã được nêu ra một cách gián tiếp trước đây là stackoverflow question. câu trả lời dường như sự đồng thuận chung bởi @Squeegy:
Bạn có thể sử dụng những từ ngữ, nhưng chỉ như dây đàn và không tính viết tắt -helpfully đưa ra một liên kết đến list of reserved wordsfoo["class"]
là mát mẻ, trong khifoo.class
không phải là
trong khi tôi nghĩ rằng @ Squeeky có lẽ là nhiều hiểu biết hơn tôi trong lĩnh vực này và nó có lẽ là một xấu ý tưởng để sử dụng các từ dành riêng trong một số trường hợp, tôi nghĩ rằng kết luận của ông là sai dựa trên hai điểm:
thử nghiệm các từ dành riêng sử dụng chúng làm thuộc tính "viết tắt"
các HTMLFormElement làm cho nó không thể không để sử dụng các từ dành riêng trong "viết tắt"
Thứ nhất, sử dụng danh sách từ dành riêng, mỗi được thêm vào như là một thuộc tính vào Object
và HTMLElement
, cả hai như obj["word"]
và obj.word
và sau đó được truy xuất dưới dạng obj["word"]
và obj.word
. Trong mỗi 63 trường hợp, tất cả tám xét nghiệm đều hoạt động chính xác.
Thứ hai, HTMLFormElement yêu cầu tác phẩm này vì nó truy xuất trong các phần tử của nó bằng ký hiệu viết tắt. Nếu <input name='typeof' value='scalar' />
là phần tử của biểu mẫu, thì form.typeof
== "vô hướng".
Từ kinh nghiệm của tôi, các từ dành riêng thường là dữ liệu gây ra (ví dụ: cột có tên "riêng tư"), chứ không phải do chương trình gây ra. Vì vậy, chúng làm ô nhiễm các đối tượng JSON, và từ đó INPUT, và từ đó HTMLFormElement. Nói một cách đơn giản, không cần nhiều công việc (imho không cần thiết), không thể giữ các từ dành riêng không phải bị buộc phải hoạt động chính xác theo cách viết tắt.
Dường như với tôi những vấn đề thực tế:
chăm sóc cần được thực hiện để không mâu thuẫn với tồn tại tính, không từ dành riêng
(nhiều nếu không phải tất cả) biến không thể đặt trước các từ
sử dụng các từ dành riêng làm thuộc tính có thể (nhưng không nhất thiết) gây nhầm lẫn
Kết luận này có chính xác không?
có nghĩa là gì 'form.typeof '? Ý tôi là, nó liên quan đến HTMLFormElement như thế nào? Một thuộc tính của một đối tượng JS có thể được truy cập trong ít nhất hai cách '['prop']' và với ký hiệu dấu chấm '.prop'. Và điều này không liên quan gì đến HTMLFormElement hoặc API DOM hay bất kỳ thứ gì khác. 'form ['typeof']' là hoàn toàn bình thường – user907860