Tôi có một lớp tùy chỉnh có một số thành viên. Tôi cần phải so sánh chúng với nhau. javascript cho phép tôi viết:Cách thực hiện ít hơn/lớn hơn so sánh về các đối tượng tùy chỉnh trong javascript
var a = new MyType(1);
var b = new MyType(2);
if (a < b) { ...
nhưng tôi không hiểu hành vi của so sánh lôgic. Ai đó có thể giải thích ngữ nghĩa của sự so sánh < trong đoạn mã trên không? Có cách nào để kiểm soát những gì xảy ra để tôi có thể có hành vi đúng không? Tôi biết tôi có thể viết một phương pháp so sánh cho lớp học, nhưng kể từ khi javascript cho phép tôi viết nó, tôi tự hỏi những gì nó nghĩ rằng nó đã làm.
Cảm ơn.
Điều đó giống như giao diện IComparable cho JavaScript. –
@Jay khi so sánh các đối tượng cho sự bình đẳng ('==', '==='), nó sẽ luôn so sánh các tham chiếu (cho dù 2 toán hạng trỏ đến cùng một đối tượng chính xác trong bộ nhớ). Bạn cần phải định nghĩa phương thức như '.isEqual' và gọi nó là bình thường' a.isEqual (b) ' – Esailija
Cảm ơn. Đó là hoàn hảo. Mặc dù vậy, nó không tạo ra tác phẩm == hoặc ===. Lạ thật là tôi không thể tìm thấy giải pháp này ở bất cứ đâu trên mạng. – drdwilcox