何时使用$ .extend({...})?

时间:2010-10-06 11:30:08

标签: jquery

我的问题是我什么时候应该使用$ .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中?

最诚挚的问候,
大不了

1 个答案:

答案 0 :(得分:3)

提供一些上下文,因为问题并不完全清楚:对于那些不知道的人,$.extend()只有一个参数扩展了jQuery对象。


通常没有需要,除非你添加非常库相关的东西,否则我会将它保存在你自己的命名空间中。它在$下没有任何用处,唯一可能发生的事情是随后的新jQuery核心更新可能会发生命名冲突。

如果您有一个或两个静态方法与插件一起使用,那么您同时扩展了$.fn $,那么我认为它是可接受的,但如果你有很多方法(听起来像这样),那么他们在$上就没有什么好处。

老实说,单个参数版本存在(或者,更确切地说,首先添加)的原因是用于jQuery本身,用于内部用法(几乎每个“部分”都使用它,检查它以hereherehere为例,我不确定外部用途是否意图,它们只是将其打开/可扩展这一点。