Sau đây là thực hiện trong Firebug:Trong Javascript, tại sao [1, 2] == [1, 2] hoặc ({a: 1}) == ({a: 1}) sai?
>>> [1, 2] == [1, 2]
false
>>> ({a : 1}) == ({a : 1})
false
Tôi nghĩ javscript có một số nguyên tắc mà nói, nếu một đối tượng hoặc mảng có tài liệu tham khảo cùng với các yếu tố tương tự, sau đó họ đều bình đẳng?
Nhưng ngay cả khi tôi nói
>>> foo = {a : 1}
Object { a=1}
>>> [foo] == [foo]
false
>>> ({a: foo}) == ({a: foo})
false
Có cách nào để làm cho nó để nó có thể làm việc so sánh phần tử và trở true
?
đối tượng literals tạo các phiên bản mới, xác định hai trường hợp không làm cho chúng chia sẻ cùng một tham chiếu. – zzzzBov
nó không phải là "yếu tố bên trong" cần phải bằng nhau? –