-1

和有什么区别

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

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

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

4

3 回答 3

2
var foo = function (param) { ... }

将函数分配给foo

$.fn.foo = function (param) { ... } 

扩展了 jQuery 的原型foofn只是一个快捷方式,prototype并且$jQuery. 您可以编写与以下内容相同的内容:

jQuery.prototype.foo = function (param) { ... }

不同的是前者只是一定范围内的一个变量,在它之外是不可见的。后者是扩展 jQuery 全局对象的方法,从而使变量可以从任何地方访问,因为 jQuery 对象附加到window, 是全局的。

于 2012-08-06T07:21:27.393 回答
1

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

$(selector).createControl();

http://docs.jquery.com/Plugins/Authoring

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

于 2012-08-06T07:16:42.077 回答
0

的使用$.fn.createControl = function() {}允许使用插件。例如,如果有人想为某事制作插件并想让用户决定他希望插件用于该人的元素可以做$('#element').createControl();

只是做var createControl = function() {}只是创建一个函数,它的唯一用途是单独调用,例如createControl();在它前面没有任何选择器元素。

于 2012-08-06T07:20:18.020 回答