Editar: Para que quede claro, no estoy cuestionando la genialidad de jQuery. Lo uso en todas partes. Simplemente no entiendo las ventajas de usar los widgets sobre los objetos js regulares que aprovechan la funcionalidad de jQuery.¿Ventajas de jQuery Widget sobre el objeto JS normal?
Recientemente he tenido que usar algunos jQuery Widgets en una aplicación en la que estoy trabajando, y los encuentro muy poco intuitivos/feos. Parece que hay muchas convenciones para aprender que realmente no agregan ningún valor, y la sintaxis no se ajusta a intellisense o refactorización fácil.
No me malinterpreten, uso jQuery constantemente y odiaría la vida sin eso, solo que no veo el valor en la convención de widgets. Estoy seguro de que me estoy perdiendo el objetivo porque están muy extendidos, así que por favor, dame una pista. ¿Por qué las personas crean widgets jQuery en lugar de objetos js regulares?
excesivamente simplificada Ejemplo:
regular JavaScript Object:
//instantiate & render
var foo = new MyDomain.MyObject('#mySpecialInput', options)
foo.render();
//assign to property
foo.value = 5;
//call method
foo.multiplyBy(2);
//bind event
foo.change(function(){
alert('it changed');
}
Jquery Widget:
//instantiate & render
var $foo = $('#mySpecialInput');
$foo.myWidget(options);
//assign to property
$foo.myWidget('option', 'value', 5);
//call method
$foo.myWidget('multiplyBy', 2);
//bind event
$foo.bind('myWidgetChange', function(){
alert('it changed');
}
una razón será [jQuery es increíble y hace muchas cosas:)] (http://img180.imageshack.us/img180/3305/addanumbertoanothernumb.png) – naveen
@naveen esto está empezando a mirar más como la respuesta real :) –
Uso el jQuery UI Widget Factory (creo que es a lo que te refieres) para escribir complementos todo el tiempo. No creo que alguna vez los use para cada objeto. La fábrica permite llamar a los métodos públicos con bastante facilidad ('$ foo.data ('myWidget'). MultiplyBy (2);'). –