为什么要使用jQuery.fn添加插件?

为什么要使用jQuery.fn添加插件?,jquery,jquery-plugins,Jquery,Jquery Plugins,所以我觉得jQuery.fn是jQuery.prototype的快捷方式。但插件不是jQuery对象的一种方法吗?为什么我要向原型添加一个方法?将方法添加到原型中会不会将该方法赋予使用jQuery对象作为构造函数生成的对象(与将该方法添加到jQuery对象本身相反)?jQuery在网站上有相关文档 向jQuery插件添加新插件有两种不同的方法: (function( $ ){ $.fn.myPlugin = function() { // Do your awesome plugi

所以我觉得jQuery.fn是jQuery.prototype的快捷方式。但插件不是jQuery对象的一种方法吗?为什么我要向原型添加一个方法?将方法添加到原型中会不会将该方法赋予使用jQuery对象作为构造函数生成的对象(与将该方法添加到jQuery对象本身相反)?

jQuery在网站上有相关文档

向jQuery插件添加新插件有两种不同的方法:

(function( $ ){
  $.fn.myPlugin = function() {

    // Do your awesome plugin stuff here

  };
})( jQuery );
(函数($)
比使用下面的函数更安全,因为使用除
$
之外的其他函数进行覆盖可能会导致插件无法工作

jQuery.fn.myPlugin = function() {

  // Do your awesome plugin stuff here

};

它甚至有点复杂(或者至少看起来是这样)。请看一下:

调用
jQuery(选择器)

jQuery.fn.init.prototype=jQuery.fn

因此,通过扩展
jQuery.fn
,我们还扩展了
jQuery.fn.init.prototype

由于我们使用
new jQuery.fn.init创建的每个对象(通过调用
jQuery()
)都有一个对原型的引用,因此过去或将来创建的每个对象都可以访问我们分配给
jQuery.fn
的每个方法


我希望这能消除你的困惑。如果没有,就问:)

是的,我读过,但没有回答我的问题。我完全明白怎么做,我只是不明白为什么我们要这样做。我可能只是概念上的困惑,但我想知道是什么!有机会创建一个插件
return new jQuery.fn.init( selector, context, rootjQuery );