-1

誰かが私にこのコードが何をするのか説明できますか?

(function($) {
    $.cookie = function(key, value, options) {
         // Body of the function here
    }
})(jQuery);

そのように宣言するだけの方が簡単ではありませんでしたか?

function cookie(key, value, options) {
     // Body of the function here
}
4

2 に答える 2

8

これは、 を使用している他のライブラリとの競合を避けるためにクロージャーと呼ばれ$ます。$このようにして、パラメーターとして渡すことで、その関数で確実に使用できますjQuery

(function ($) {
   $(function () {
    .......
   });
})(jQuery); //<----passing jquery to avoid any conflict with other libraries.

Mootoolsのように、prototypeなどのライブラリも使用して$おり、このクロージャーは競合を避けるために使用されます。

于 2013-04-16T11:10:07.607 に答える
5

を受け入れる無名関数を作成し、$すぐに呼び出して を渡しjQueryます。これにより、クロージャー where $is が作成されますjQuery。つまりjQuery、実行時にそれが jQuery インスタンスになることがわかっている$場合、そのクロージャーではそれが jQuery インスタンス インスタンスになることもわかります。これは、 も定義する可能性のある競合するフレームワークに対する保護手段$です。

于 2013-04-16T11:11:03.720 に答える