1

我在外面看到一个帖子:

$.fn 是什么意思

但是我还是不明白。有人可以用非常简单的术语向我解释这一点。为什么他们选择以这种方式指定它?

4

2 回答 2

5

$.fn只是jQuery.prototype. 要编写一个 jQuery插件,例如 DataTables,通常首先将一个新的函数属性添加到$.fn.

简单来说,当您编写jQuery 原型时,$.fn.pluginName您通过添加一个调用它的新函数来扩展jQuery原型pluginName。这样,您可以使用例如$("#myElement").pluginName(). 这基本上就是 DataTables 所做的,它为 jQuery 提供了一个名为dataTablesExt.

现在,这个插件有几个属性。其中之一,被称为afnSortData(您也可以参考 using jQuery.prototype.dataTableExt.afnSortData)。这样,插件属性的作用域就是dataTableExt对象/插件。DataTables 可以选择在全局命名空间中定义它,但是这样的话,有人可以覆盖afnSortData,比如说,{}破坏插件。

于 2012-09-10T14:28:28.263 回答
1

在 jQuery 中,fn属性只是原型属性的别名。

jQuery标识符(或$)只是一个构造函数,用它创建的所有实例都继承自构造函数的原型。


资料来源:jQuery.fn 是什么意思?

所以它只代表jQuery.prototype.

$.fn === jQuery.prototype

.prototype 是什么?

在 JavaScript 中,原型是提供继承的机制。

示例:String.prototype指的是字符串的原型对象,其中包含(除其他外)可以在任何字符串上调用的方法。

于 2012-09-10T14:24:37.357 回答