我在外面看到一个帖子:
但是我还是不明白。有人可以用非常简单的术语向我解释这一点。为什么他们选择以这种方式指定它?
$.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,比如说,{}破坏插件。
在 jQuery 中,fn属性只是原型属性的别名。
jQuery标识符(或$)只是一个构造函数,用它创建的所有实例都继承自构造函数的原型。
资料来源:jQuery.fn 是什么意思?
所以它只代表jQuery.prototype.
$.fn === jQuery.prototype
.prototype 是什么?
在 JavaScript 中,原型是提供继承的机制。
示例:String.prototype指的是字符串的原型对象,其中包含(除其他外)可以在任何字符串上调用的方法。