$ .pluginName和$ .fn.pluginName之间有什么区别

时间:2011-06-24 13:50:36

标签: jquery

我经常看到以下两种模式。两者有什么区别?什么时候适合?

$.pluginName = function(){}

$.fn.pluginName = function(){}

2 个答案:

答案 0 :(得分:9)

很简单:

$.fn.pluginName是一个可在所有jQuery.init *个对象上调用的函数。这对于使链式功能与对象一起使用非常有用:

示例:

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

$('#bar').foo(); 

要继续链接对象,您需要返回另一个jQuery.init对象(可以是原始对象,也可以是已过滤的对象):

$.fn.foo = function(){ return this; };

$.pluginName是一个可调用为$.pluginName()的函数。这对于创建实用程序函数或存储特定插件的默认状态非常有用。

示例:

$.foo = function(){...};

bar = $.foo();

* jQuery工厂函数(jQuery()$())实际返回new jQuery.init对象

答案 1 :(得分:2)

$.pluginName用于已添加到jQuery名称空间的实用程序函数,例如:

$.isArray();
$.extend();
etc

$.fn.pluginName用于处理由jQuery $(...)函数返回的元素列表的函数:

$(...).attr( ... );
$(...).first( ... );
etc