A partir de jQuery 1.9, a widget can inherit from itself. No pude encontrar un ejemplo real de por qué esto sería útil, y francamente la idea de heredar de uno mismo me rompe el cerebro. ¿Cuál es el propósito de esta característica? ¿Qué puedo hacer con esta característica que no pude hacer anteriormente o que hubiera sido mucho más difícil anteriormente?¿Por qué querría que un widget jQuery UI heredara de sí mismo?
Respuesta
Como se dice in the slide you linked us, "esta es la forma ideal de ampliar los widgets".
Ahora puede ampliar un widget sin crear un nuevo objeto widget "diferente" ("diferente" que significa "otro nombre"). Puede agregar una funcionalidad y seguir usando el mismo nombre de objeto de widget.
// An incredibly contrived example
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Como podemos ver en el ejemplo, se puede añadir una función al objeto de diálogo, que aparecerá en los cuadros de diálogo ya existentes, es decir, no es necesario crear una nueva "extendedDialog" y luego cambiar el código existente para usar el objeto "extendedDialog". En cambio, la funcionalidad incluida ya estará disponible y funcionando allí.
El motivo es redefinir el mismo widget. Entonces, le agrega nuevas capacidades, no necesita extenderlo en otro objeto.
En el ejemplo presentado en el enlace que ha enviado:
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Después de la ejecución del código anterior, todos los diálogos que se crea se abrirá un mensaje de confirmación cuando el usuario hace clic en el botón de cierre y si él/ella lo acepta, se cerrará.
Esto le brinda capacidades similares a las categorías en objetivo-c, puede agregar funcionalidad a una clase (widget) sin tener que cambiar el código de clase/widget en sí, o incluso tener acceso a su fuente.
- 1. ¿Por qué querría usar jQuery?
- 2. ¿Por qué jQuery UI no ve jQuery?
- 3. ¿Cómo extender un widget jquery ui? (1.7)
- 4. ¿Por qué querría comenzar un hilo "suspendido"?
- 5. ¿Por qué un método no es idéntico a sí mismo?
- 6. Widget de calificación Star para jQuery UI
- 7. cómo declarar una variable estática/clase en un widget de widget de fábrica de jQuery UI
- 8. ¿Por qué Numpy es "lento" por sí mismo?
- 9. Cómo usar jQuery UI Datepicker como un widget de Django?
- 10. Programmáticamente 'deseleccionar' un widget seleccionable de jQuery UI
- 11. ¿Por qué querría que IsTabStop fuera verdadero en ContentControl?
- 12. ¿Cómo almacenar una propiedad interna en el widget jquery-ui?
- 13. ¿Qué significa que "Lisp se puede escribir en sí mismo?"
- 14. Alerta de CLLocationManager desestimándose por sí mismo
- 15. Cómo derivar un widget personalizado del diálogo jquery-ui
- 16. ¿Qué compiladores x86 C++ son multiproceso por sí mismo?
- 17. ¿Por qué double.NaN no es igual a sí mismo?
- 18. ¿Alguien sabe acerca del widget de jQuery UI mouse?
- 19. .NET Remoto conmutando canales por sí mismo
- 20. ¿Cómo conecto varias listas ordenables entre sí en jQuery UI?
- 21. ¿UIPageControl es inútil por sí mismo?
- 22. plugin sbt que depende de sí mismo para compilarse a sí mismo
- 23. ¿Por qué querría escenario antes de comprometerme en Git?
- 24. Inicializando una estructura que contiene un vector de sí mismo
- 25. Haciendo el widget Autocompletar de jQuery UI * en realidad * autocompletar
- 26. Diferencia entre un complemento jQuery y un widget jQuery?
- 27. Cómo extender el widget jQuery UI _create method?
- 28. ¿Puede un pthread realizar la limpieza por sí mismo?
- 29. ¿Por qué querría usar una base de datos no relacional?
- 30. ¿Hay más de un widget jQuery Autocompletar?
JavaScript no tiene clases;) – davidbuzatto
¡JavaScript también no tiene herencia! :-) –
Gracias por la respuesta. La pieza clave que me faltaba era que podía extender un widget compartido en un archivo fuente diferente solo para una aplicación en particular. Tipo de clases parciales similares en C#. Tiene perfecto sentido ahora. – RationalGeek