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

Mar*_*own 5 jquery

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

$.pluginName = function(){}
Run Code Online (Sandbox Code Playgroud)

$.fn.pluginName = function(){}
Run Code Online (Sandbox Code Playgroud)

zzz*_*Bov 9

非常简单:

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

例:

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

$('#bar').foo(); 
Run Code Online (Sandbox Code Playgroud)

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

$.fn.foo = function(){ return this; };
Run Code Online (Sandbox Code Playgroud)

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

例:

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

bar = $.foo();
Run Code Online (Sandbox Code Playgroud)

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