编辑:为了清楚起见,我不是在质疑 jQuery 的厉害之处。我到处都用它。我只是不明白使用小部件相对于利用 jQuery 功能的常规 js 对象的优势。
我最近不得不在我正在开发的应用程序中使用一些 jQuery 小部件,我发现它们非常不直观/丑陋。似乎有很多约定要学习,它们并没有真正增加任何价值,而且语法不适应智能感知或轻松重构。
不要误会我的意思,我经常使用 jQuery,我讨厌没有它的生活,只是看不到小部件约定中的价值。我确定我错过了这一点,因为它们是如此普遍,所以请提示我。为什么人们创建 jQuery 小部件而不是常规的 js 对象?
过于简单的例子:
常规 Javascript 对象:
//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 小部件:
//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');
}