私はそこに投稿を見ました:
しかし、私はまだそれを理解していません。誰かが私にこれを非常に簡単な言葉で説明できますか?なぜ彼らはそれをこのように指定することを選んだのですか?
私はそこに投稿を見ました:
しかし、私はまだそれを理解していません。誰かが私にこれを非常に簡単な言葉で説明できますか?なぜ彼らはそれをこのように指定することを選んだのですか?
$.fn
の単なるエイリアスですjQuery.prototype
。DataTablesなどのjQueryプラグイン$.fn
を作成するには、通常、新しい関数プロパティをに追加することから始めます。
簡単に言うと、を書くときは$.fn.pluginName
、 jQueryに呼び出される新しい関数を追加することで、jQueryのプロトタイプを拡張していることになります。このように、たとえば、を使用して呼び出すことができます。これは基本的にDataTablesが行うことであり、と呼ばれるjQueryの拡張機能を提供します。pluginName
$("#myElement").pluginName()
dataTablesExt
現在、このプラグインにはいくつかのプロパティがあります。それらの1つは、と呼ばれafnSortData
ます(これは、を使用して参照することもできますjQuery.prototype.dataTableExt.afnSortData
)。このように、プラグインのプロパティはオブジェクト/プラグインにスコープされます。dataTableExt
DataTablesは、グローバル名前空間で定義することを選択できた可能性がありますが、この方法では、誰かがプラグインを上書きafnSortData
したり{}
、プラグインを壊したりする可能性があります。
jQueryでは、fn
プロパティはプロトタイププロパティの単なるエイリアスです。
jQuery
識別子(または$
)は単なるコンストラクター関数であり、それを使用して作成されたすべてのインスタンスは、コンストラクターのプロトタイプから継承されます。
だからそれはただの略ですjQuery.prototype
。
$.fn === jQuery.prototype
.prototypeとは何ですか?
JavaScriptでは、プロトタイプは継承を提供するメカニズムです。
例:String.prototype
Stringsのプロトタイプオブジェクトを参照します。これには、(とりわけ)任意のStringで呼び出すことができるメソッドが含まれています。