Jquery var createControl=function(attribute){…}$.fn.createControl=function(attribute){..}之间的区别是什么

Jquery var createControl=function(attribute){…}$.fn.createControl=function(attribute){..}之间的区别是什么,jquery,jquery-plugins,Jquery,Jquery Plugins,两者的区别是什么 var createControl = function (attribute){ ...} 和 $.fn.createControl = function (attribute) { .. } 在jQuery中。将函数从$.fn.createControl更改为var createControl有什么好处。这是编写jQuery插件语法的一部分,因此您可以像这样调用自定义插件: $(selector).createControl(); 这样,您的createContr

两者的区别是什么

var createControl = function (attribute){ ...} 

$.fn.createControl = function (attribute) { .. }

在jQuery中。将函数从$.fn.createControl更改为var createControl有什么好处。

这是编写jQuery插件语法的一部分,因此您可以像这样调用自定义插件:

$(selector).createControl();


这样,您的
createControl()
就可以知道调用了哪些元素。如果您正在执行
var createControl
,则需要将选择器传递给函数,或者在函数中对其进行硬编码。

使用
$.fn.createControl=function(){}
允许使用插件。例如,如果有人想为某个东西制作一个插件,并想让用户决定他想为该人使用插件的元素,那么只需执行
$(“#element”).createControl()

只需执行
var createControl=function(){}
即可创建一个函数,其唯一用途是单独调用,例如
createControl()前面没有任何选择器元素

var foo = function (param) { ... }
将函数分配给
foo

$.fn.foo = function (param) { ... } 
使用
foo
扩展jQuery原型
fn
只是
prototype
的快捷方式,
$
jQuery
的快捷方式。你可以写同样的东西:

jQuery.prototype.foo = function (param) { ... }
区别在于前者只是某个范围内的一个变量,在它之外是看不见的。后者是一种扩展jQuery全局对象的方法,因此可以从任何地方访问变量,因为jQuery对象附加到
窗口
,是全局的