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

zjm*_*ler 3 jquery jquery-plugins

所以我的印象是jQuery.fn是jQuery.prototype的快捷方式.但是不是一个插件jQuery 对象的方法?为什么我要为原型添加方法?不会向原型添加方法将方法赋予使用jQuery对象作为构造函数创建的对象(而不是将方法添加到jQuery对象本身)?

Fel*_*ing 9

它甚至有点复杂(或者至少看起来如此).看一下源代码(jQuery 1.6.2):

当你打电话的时候jQuery(selector) 你正在打电话

return new jQuery.fn.init( selector, context, rootjQuery );
Run Code Online (Sandbox Code Playgroud)

另外我们有 jQuery.fn.init.prototype = jQuery.fn.

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

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

我希望这能解决你的困惑.如果没有,请问:)