He creado objetos nuevos con Dojo.declare. Cómo sobrecargar operador == para objetos?Cómo sobrecargar igualdad de operador para objetos de JavaScript
Respuesta
Usted no puede sobrecargar ==
, pero ==
tiene una implícita .toString()
llamada, por lo que cualquier .toString()
retornos le permitirá a la sobrecarga efectiva ==
(un poco):
function foo(){}
foo.prototype.toString = function(){ return 42; }
var x = new foo();
x == 42; // true
cuanto a cómo hacer esto en el Dojo, No uso Dojo, lo siento, pero la esencia es que obtienes una referencia a cualquier objeto que se crea y agrega thatObject.prototype.toString
como en mi ejemplo.
Para un objeto y un primitivo, tal vez. Aunque 'valueOf' es lo que desea anular. Pero no para dos objetos. 'new String ('x')! = new String ('x')' a pesar del hecho de que los dos métodos 'toString' devuelven el mismo valor. –
@Mike - meh. Tienes razón. La igualdad de objeto no se aplica porque solo hay una verificación en la dirección de memoria ... –
, incluso para la comparación de objeto y primitiva, se dará prioridad a la implementación de 'valueOf '. –
No puede. JavaScript no admite la sobrecarga del operador.
No se puede en Java/ECMAscript. Solo puede sobrecargar a los operadores que usan ExtendScript desde Adobe. Ver this example. También vea esto blog entry (pro), o this (contra).
Esto parece aplicarse solo a ActionScript. –
@Joachim Sauer: wtf? ¡Eso es lo que dije esta respuesta! Agregando algunos enlaces para mostrar que hay discusión sobre la sobrecarga del operador para ECMAscript. – KooiInc
Su redacción anterior no dejó esto en claro. –
- 1. operador de igualdad dentro de la aplicación operador de igualdad
- 2. Cómo sobrecargar el operador -> *?
- 3. ¿Cómo sobrecargar el operador de indirección? (C++)
- 4. C++ shared_ptr operador de igualdad
- 5. ¿Hay algún truco para "sobrecargar el operador de punto"?
- 6. ActiveRecord igualdad de objetos
- 7. ¿Cómo combina Array # - (operador de resta) elementos para la igualdad?
- 8. ¿Cómo sobrecargar el operador [] en C#
- 9. ¿Cómo sobrecargar correctamente el operador << para un ostream?
- 10. Cómo sobrecargar operador ==() para un puntero a la clase?
- 11. Cómo sobrecargar el operador << para qDebug
- 12. Cómo probar la igualdad de objetos (ActiveRecord)
- 13. Probar objetos ActiveSupport :: TimeWithZone para igualdad
- 14. ¿Cómo anula el operador de igualdad de casos de ruby? (===)
- 15. cómo sobrecargar Postfix y operador de prefijo en C#
- 16. ¿Cómo podría sobrecargar sensiblemente el operador de colocación nuevo?
- 17. ¿Cómo funciona STL map :: find sin el operador de igualdad?
- 18. Operadores de comparación de JavaScript: Identidad vs. Igualdad
- 19. Cómo sobrecargar el operador de índice de matriz para la clase contenedora de matriz 2D?
- 20. ¿Por qué Microsoft recomienda omitir la implementación del operador de igualdad para los tipos de referencia?
- 21. ¿Cómo sobrecargar el operador menos unario en C++?
- 22. XUnit Afirmación para verificar la igualdad de objetos
- 23. igualdad de Javascript igualdad triple pero ¿qué hay de mayor que y menor que?
- 24. igualdad en javascript
- 25. Java no puede sobrecargar ningún operador. ¿Por qué?
- 26. Convención de capitalización para objetos de JavaScript
- 27. ¿Por qué sobrecargar el operador de asignación de copia para una clase singleton en C++?
- 28. Operador sobrecarga == versus Igual()
- 29. Cómo sobrecargar un operador para la composición de funcionales en C++ 0x?
- 30. JavaScript Fecha Comparación de objetos
Posible duplicado de [Sobrecarga de operadores aritméticos en JavaScript?] (Http://stackoverflow.com/questions/1634341/overloading-arithmetic-operators-in-javascript) –
Aquí: https://stackoverflow.com/q/ 10539938/632951 – Pacerier