Tôi đã mong JavaScript loại bỏ các đối tượng có thuộc tính trùng lặp là không hợp lệ nhưng nó chấp nhận chúng trong một số trường hợp.Tại sao đối tượng có thuộc tính trùng lặp được chấp nhận trong JavaScript?
{"a":4,"a":5}
kết quả trong một ít nhất là trong Firefox và Chrome có vẻ hiển nhiên do thuộc tính a
được xác định hai lần.
Tuy nhiên ({"a":4,"a":5})
đánh giá tốt và dẫn đến đối tượng {"a":5}
trong cả Firefox và Chrome.
Tại sao biểu thức có dấu ngoặc đơn được chấp nhận?
Tổng hợp các câu trả lời: Ví dụ đầu tiên đơn giản không phải là việc xây dựng một đối tượng mà là một khối các câu lệnh có nhãn. Tính thích hợp trùng lặp trong các đối tượng là hoàn toàn hợp lệ trong trường hợp đó định nghĩa cuối cùng sẽ thắng.
Cảm ơn rất nhiều câu trả lời của bạn!
Dường như làm việc tốt có và không có dấu ngoặc đơn trên FF và Chrome http://jsbin.com/iponud/1/edit. Tôi có nghĩa là nó trả về 'a' – elclanrs
@elclanrs cuối cùng: kết quả đó là gây hiểu nhầm (tôi đã tự viết nó vào jsfiddle trước đó :) - đặt mã trong câu hỏi bên trong danh sách đối số' console.log' loại bỏ [cú pháp sự mơ hồ đã gây ra lỗi ở nơi đầu tiên] (http://stackoverflow.com/a/13287483/1081234) –