大多数jQuery插件的结构
为什么大多数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' 我认为第一个结构定义了一个函数,并用输入参数调用它,为什么我们要这样做,我们可以
(function($)
{
// do stuff with $
})(jQuery)
// do stuff with object 'jQuery'
我认为这个结构与这个简单的结构是等价的:
(function($)
{
// do stuff with $
})(jQuery)
// do stuff with object 'jQuery'
我认为第一个结构定义了一个函数,并用输入参数调用它,为什么我们要这样做,我们可以忽略这个函数,用objectjQuery
执行我们的代码,而不需要任何额外的函数有人能告诉我为什么第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
语句都会变成局部函数,而不是全局函数。感谢您的回答,这是有价值和有帮助的谢谢您的回答,这是有价值和有帮助的