私は次のプラグインを持っています:
;(function($, window, document)
{
...
...
})(jQuery, window, document);
私は何を理解することができます; $はjQueryであることに気づきますが、関数の後に(jQuery、window、document)が続く理由を誰かが説明できます。
私は次のプラグインを持っています:
;(function($, window, document)
{
...
...
})(jQuery, window, document);
私は何を理解することができます; $はjQueryであることに気づきますが、関数の後に(jQuery、window、document)が続く理由を誰かが説明できます。
これは、「自己発動」または「即時呼び出し」関数と呼ばれます。これは、関数が最後の括弧のセットのパラメーターを使用して作成されるとすぐに実行されることを意味します。
これは、即時呼び出し関数式または自己実行無名関数と呼ばれます。これにより、開発者は自分のプライベート宣言を非表示にできます。
;( // <---------------+
// | encapsulate the function
function($, window, document) { // <--+ declare | and call it passing three
// | anonymous | arguments.
} // <--+ function |
// |
)(jQuery, window, document); // <---------------+
あなたが何を求めているのか完全にはわかりませんが、彼らがしていることは、jQuery
オブジェクト、window
オブジェクト、およびdocument
オブジェクトを関数に渡すことです。
ほとんどの場合、パフォーマンス上の理由でこれを行います。これにより、最小化子は、ローカル変数であるため、およびwindow
のdocument
ようなものへのすべての参照を短縮することができます。大規模なライブラリでは、数バイト節約できます。w
d
さらに、グローバル変数(実際にはマイクロ最適化)と比較して、ローカル変数へのアクセスがわずかに速いと思います(参照atmはありません)。
これは即時呼び出し関数式です
つまり、関数はすぐに宣言されて実行されます。これは、新しいスコープを作成するために行われます。
これは、すぐに呼び出される無名関数(いわゆるIIFE)です。
jQuery
エイリアスを渡すことで$
、外部環境の正しいバージョンへの参照であることを確認できますwindow
。document