javascript - jQuery Widget 相对于常规 JS 对象的优势?

标签 javascript jquery jquery-ui widget

编辑:澄清一下,我并不是在质疑 jQuery 的强大之处。我到处都用它。我只是不明白使用小部件比利用 jQuery 功能的常规 js 对象有什么优势。

我最近不得不在我正在开发的应用程序中使用一些 jQuery 小部件,我发现它们非常不直观/丑陋。似乎有很多约定要学习,但实际上并没有增加任何值(value),而且语法不适应智能感知或轻松重构。

不要误会我的意思,我经常使用 jQuery,我讨厌没有它的生活,只是看不到小部件约定中的值(value)。我确定我没有捕获要点,因为它们是如此广泛,所以请告诉我。为什么人们创建 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');
}

最佳答案

最重要的是 jQuery 小部件有助于为您的应用程序带来结构,如果没有它们将很难维护。当然,它们还提供了很多有用的事件,例如 .bind(),有时会非常有用。经过一番谷歌搜索后,我找到了 this article关于 jQuery 小部件,其中更详细地介绍了它们的优点。

就个人而言,我更喜欢手动构建我的脚本(更多),但如果您不喜欢这样做,jQuery 小部件可以提供帮助。


详细介绍 jQuery 小部件如何添加结构的相关引用:

...it provides the level of code organization that is very hard to maintain outside of a widget structure. It changes the code from being imperative (”do this, then that, then another thing, bind to click”) to declarative (”act like an expando thing”). This frees you up to define what “expando thing” means, while not cluttering or changing the outer layer of your app. No more multi-hundred line long $(document).ready() blocks.

关于javascript - jQuery Widget 相对于常规 JS 对象的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555918/

相关文章:

javascript - jQuery UI 自动完成 : Disable tab completion?

javascript - 为动态创建的表行添加 onclick 方法

javascript - 单击 1 次后灰色按钮 - HTML/CSS/JS

jQuery 插件在 MVC 中捆绑时失败

jQuery 自动完成没有自动换行

javascript - 无法拖动动态添加的DIV

javascript - 如何在AngularJs中将数据从模态的内部 Controller 传递到外部 Controller

javascript - 通过键查找 json 对象并将其替换为复杂/嵌套 json 数组中的其他对象

events - 确定用户是否单击滚动条或内容(onclick 对于 native 滚动条)

javascript - 当列表中的值为空时如何显示自定义消息