5

JavaScriptアプリケーションでMVCパターンを使用する方法を説明しているJavaScriptに関する本を読んでいます。このコードでは、コントローラーのセットアップ方法を示しています。jQueryのドル記号が3行目の関数にパラメーターとして渡される理由と、最後の行の(jQuery)の前にドル記号がない理由を誰かが説明できますか?

var Controller = {};
// Use a anonymous function to enscapulate scope
(Controller.users = function($){
    var nameClick = function(){
        /* ... */
    };

    // Attach event listeners on page load
    $(function(){
        $("#view .name").click(nameClick);
    });
})(jQuery);
4

3 に答える 3

6

jQueryjQueryを保持する変数の名前は、ではなく、であるため、最後の行の前にドル記号はjQueryありません$jQuery$名前の競合を避けるために、すぐに渡されます。

于 2012-09-11T18:33:30.827 に答える
3

簡単に言えば$、そのコンテキストで他に名前が付けられていないことを確認します。

jQuery変数はjQuery、という$名前で、変数名の有効なシンボルであり、jQueryはそれを使用してjQueryオブジェクトを格納しました。上記のコードは、代わりに他の変数名を使用するように簡単に書き直すことができます$

var Controller = {};
// Use a anonymous function to enscapulate scope
(Controller.users = function(myJQueryVariable){
    var nameClick = function(){
        /* ... */
    };

    // Attach event listeners on page load
    myJQueryVariable(function(){
        myJQueryVariable("#view .name").click(nameClick);
    });
})(jQuery);
于 2012-09-11T18:36:08.610 に答える
1

関数に渡されるjQueryは、関数内の$の引数を提供しています。つまり、関数が$がjQueryオブジェクトであることを確実に理解するために、$ショートカットの代わりにjQueryの完全なオブジェクト名が渡されます。これは、他のjavascriptライブラリが使用されており、$割り当てをめぐって競合する可能性がある場合に役立ちます。

于 2012-09-11T18:34:58.500 に答える