esto no se puede hacer de la manera en que usted está sugiriendo que debería hacerse (aunque eso sería bueno). La mejor manera que he visto este hecho es poner en práctica en el prototipo de un conjunto de métodos para actuar como comparativos:
gte : function(obj){ // greater than or equal
// return custom comparison with this as the object comparable on the left
},
gt : function(obj){...}, // greater than but not equal
eq : function(obj){...}, // equal to
// etc.
estaba pensando en este problema somemore hoy en el trabajo y no hay una forma alternativa para aprovechar los operadores de comparación estándar, pero tienen comparaciones de objetos personalizados. El truco sería tener una propiedad (getter) en el objeto que representa el estado comparable. Esto requeriría que todas las instancias del objeto se evalúen con el mismo valor numérico dadas las mismas propiedades comparables. Como ejemplo vamos a hablar vectores:
function Vector(x,y,z){
this.comp = function(){
// assuming these are floats you may wish to create a comparable level of
// precision. But this gets the point across.
return x + (y * 10) + (z * 100);
}
}
entonces cuando se configura vectores:
var v1 = new Vector(1,1,1);
var v2 = new Vector(1,0,1);
v1.comp() > v2.comp() // true
esto sólo funciona, por supuesto, si se trata de objetos que pueden dividirse en simples expresión numérica del valor , pero lo positivo es que el código de implementación para obtener el efecto básico es bastante bajo e incluso se puede llegar a hacer que el objeto sea una función que devuelve la expresión numérica de sus componentes.
function Vector(x,y,z){
var v = function v(){
return v.x + (v.y * 10) + (v.z * 100);
}
v.x = x;
v.y = y;
v.z = z;
return v;
}
ahora tiene todos los beneficios del objeto con comparaciones numéricas fáciles y es incluso un poco escueto.
En Javascript, '=' no es un comparador, es el operador de asignación. –
Vaya, error ortográfico. Gracias por atraparlo – Chetan
Eche un vistazo a la parte inferior del artículo: * "Este tema será discutido en profundidad en mi libro de trabajo en progreso: Secretos de JavaScript Ninja. Se lanzará en otoño de 2008." * - aún inédito, el libro de Resig es Duke Nukem Forever of JavaScript ':)' –