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

标签 jquery jquery-plugins

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

最佳答案

它甚至有点复杂(或者至少看起来是这样)。看看source code (jQuery 1.6.2) :

当你调用jQuery(选择器)you are actually calling

return new jQuery.fn.init( selector, context, rootjQuery );

In addition we have jQuery.fn.init.prototype = jQuery.fn.

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

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

希望这能消除您的困惑。如果没有,请询​​问:)

关于jquery - 为什么使用 jQuery.fn 添加插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467841/

相关文章:

javascript - 从多个表单中选择的下拉列表

javascript - 使用第二个实例的选项的 Jquery 插件

javascript - 树屋 jQuery 挑战

jquery - jqgrid禁用默认客户端排序并手动处理

javascript - 为什么 jQuery.cssRule 插件必须向所有样式表添加规则?

javascript - 单击时,添加类直到复选框/标签被单击

javascript - 我的背景不会淡入,只是加载

Jquery:将更改绑定(bind)到多个复选框

javascript - jQuery ajax 搜索问题

jquery - 将行添加到 jQuery 表中当前行之后