Tengo una clase personalizada que tiene varios miembros. Necesito compararlos el uno al otro. javascript me permite escribir:Cómo realizar comparaciones menores que/mayores que en objetos personalizados en javascript
var a = new MyType(1);
var b = new MyType(2);
if (a < b) { ...
pero no entiendo el comportamiento de la comparación lógica. ¿Alguien puede explicar la semántica de la comparación < en el código anterior? ¿Hay alguna manera de controlar lo que sucede para que pueda obtener un comportamiento correcto? Sé que puedo escribir un método de comparación para la clase, pero dado que javascript me permite escribirlo, me pregunté qué pensaba que estaba haciendo.
Gracias.
Wow, eso es como una interfaz de IComparable para JavaScript. –
@Jay al comparar objetos para igualdad ('==', '==='), siempre comparará referencias (si los 2 operandos apuntan al mismo objeto exacto en la memoria). Necesitas definir un método como '.isEqual' y llamarlo normalmente' a.isEqual (b) ' – Esailija
Gracias. Eso es perfecto. Sin embargo, es una pena que tampoco funcione == o ===. Es extraño que no pude encontrar esta solución en ninguna parte de la red. – drdwilcox