为什么要使用jQuery.fn添加插件?
所以我觉得jQuery.fn是jQuery.prototype的快捷方式。但插件不是jQuery对象的一种方法吗?为什么我要向原型添加一个方法?将方法添加到原型中会不会将该方法赋予使用jQuery对象作为构造函数生成的对象(与将该方法添加到jQuery对象本身相反)?jQuery在网站上有相关文档 向jQuery插件添加新插件有两种不同的方法:为什么要使用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
(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 );