我的问题是我什么时候应该使用$ .extend(...)?
在许多jquery插件中,我看到jquery-object本身是用新的(全局)函数扩展的:
$.extend({
doSth: function() {
alert('do sth here');
}
}
扩展jquery-object而不是创建包含该函数的全局对象有什么好处:
var myLib = {
doSth: function() {
alert('do sth here');
}
}
目前我正在开发一个小型的js-lib。在那个lib中,$ .fn-object被扩展,我需要一些全局函数。
但我不知道在哪里放置全局函数:在我自己的lib-object或jquery-object中?
最诚挚的问候,
大不了
答案 0 :(得分:3)
提供一些上下文,因为问题并不完全清楚:对于那些不知道的人,$.extend()
只有一个参数扩展了jQuery
对象。
通常没有需要,除非你添加非常库相关的东西,否则我会将它保存在你自己的命名空间中。它在$
下没有任何用处,唯一可能发生的事情是随后的新jQuery核心更新可能会发生命名冲突。
如果您有一个或两个静态方法与插件一起使用,那么您同时扩展了$.fn
和 $
,那么我认为它是可接受的,但如果你有很多方法(听起来像这样),那么他们在$
上就没有什么好处。
老实说,单个参数版本存在(或者,更确切地说,首先添加)的原因是用于jQuery本身,用于内部用法(几乎每个“部分”都使用它,检查它以here,here和here为例,我不确定外部用途是否意图,它们只是将其打开/可扩展这一点。