大多数jQuery插件的结构

大多数jQuery插件的结构,jquery,jquery-plugins,Jquery,Jquery Plugins,为什么大多数jQuery插件都基于结构: (function($) { // do stuff with $ })(jQuery) // do stuff with object 'jQuery' 我认为这个结构与这个简单的结构是等价的: (function($) { // do stuff with $ })(jQuery) // do stuff with object 'jQuery' 我认为第一个结构定义了一个函数,并用输入参数调用它,为什么我们要这样做,我们可以

为什么大多数jQuery插件都基于结构:

(function($)
{
    // do stuff with $
})(jQuery)
// do stuff with object 'jQuery'
我认为这个结构与这个简单的结构是等价的:

(function($)
{
    // do stuff with $
})(jQuery)
// do stuff with object 'jQuery'
我认为第一个结构定义了一个函数,并用输入参数调用它,为什么我们要这样做,我们可以忽略这个函数,用object
jQuery
执行我们的代码,而不需要任何额外的函数
有人能告诉我为什么第1个结构更好,使用得更多吗?

函数($){和
})(jQuery)
部分用于将变量保存在函数中,以避免与其他代码或其他插件冲突

插件函数的定义如下:

(function($) {

    $.fn.do_stuff = function() {

        //Do stuff

    }

})(jQuery);
(function($){
})(jQuery)
部分旨在将变量保存在函数中,以避免与其他代码或其他插件冲突

插件函数的定义如下:

(function($) {

    $.fn.do_stuff = function() {

        //Do stuff

    }

})(jQuery);
这(几乎完全)是等价的。这样做的原因主要是为了方便,每次编写
jQuery
都是一件痛苦的事情,而且它不像只使用
$
那样惯用。但是,有一个问题:许多其他流行的javascript库都使用了
$
函数,因此jQuery可以在“”模式下加载,在该模式下它不会设置全局变量
$
。为了让插件在无冲突或正常模式下引用它,它们包括将它包装在一个函数中,正如您所注意到的

作为一个附带的好处,“do stuff”区域内的任何
var
语句都是局部函数,而不是全局函数。

它(几乎完全)是等效的。这样做的原因主要是为了方便,每次编写
jQuery
都是一件痛苦的事情,而且它不像只使用
$
那样惯用。但是,有一个问题:许多其他流行的javascript库都使用了
$
函数,因此jQuery可以在“”模式下加载,在该模式下它不会设置全局变量
$
。为了让插件在无冲突或正常模式下引用它,它们包括将它包装在一个函数中,正如您所注意到的


作为一个附带好处,“do stuff”区域内的任何
var
语句都会变成局部函数,而不是全局函数。

感谢您的回答,这是有价值和有帮助的谢谢您的回答,这是有价值和有帮助的