Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 何时使用$.extend({…})?_Jquery - Fatal编程技术网

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

Jquery 何时使用$.extend({…})?,jquery,Jquery,我的问题是什么时候应该使用$.extend(…)? 在许多jquery插件中,我看到jquery对象本身扩展了新的(全局)函数: $.extend({ doSth: function() { alert('do sth here'); } } 扩展jquery对象而不是创建包含函数的全局对象有什么好处: var myLib = { doSth: function() { alert('do sth here'); } } 目前我

我的问题是什么时候应该使用$.extend(…)?
在许多jquery插件中,我看到jquery对象本身扩展了新的(全局)函数:

$.extend({
    doSth: function() {
        alert('do sth here');
    }
}
扩展jquery对象而不是创建包含函数的全局对象有什么好处:

var myLib = {
    doSth: function() {
        alert('do sth here');
    }
}
目前我正在开发一个小的js库。在该库中,$.fn对象被扩展,我需要一些全局函数。
但我不知道全局函数放在哪里:在我自己的库对象中还是放在jquery对象中

致以最诚挚的问候,
Biggie

给出一些上下文,因为问题并不完全清楚:对于那些不知道的人,使用单个参数扩展
jQuery
对象


通常不需要这样做,除非您添加了与库非常相关的内容,否则我会将其保存在您自己的名称空间中。它在
$
下没有任何用途,唯一可能发生的事情是以后与新的jQuery核心更新发生潜在的命名冲突

如果您有一个或两个与插件配套的静态方法,其中您同时扩展了
$.fn
$
,那么我认为这是可以接受的,但是如果您有许多方法(听起来像这样),那么它们在
$
上并没有真正的好处


老实说,单参数版本存在的原因(或者更准确地说,是在第一时间添加的)是为了jQuery本身,为了内部使用(几乎每个“部分”都使用它,请查看它,作为示例),我不确定是否有意使用外部,他们只是让它保持打开/可扩展状态

“单参数版本存在的原因是jQuery本身“--对于插件也是如此。@lonesomeday-不太可能,添加它的原因是为了jQuery,虽然插件可以使用它,但大多数插件将扩展
jQuery.fn
,而不是jQuery,插件不需要在jQuery对象上使用它们的静态函数,但是它们必须在
$.fn
上才能在链中使用。对不起,“我已经超越了我自己。@lonesomeday-这是一个正确的观点,我更新了,希望能更清楚地说明它,我知道你怎么能这样理解它……希望现在更清楚:)