jQuery:$作为参数

时间:2012-09-11 18:32:10

标签: jquery

我正在阅读一本关于JavaScript的书,该书解释了如何在JavaScript应用程序中使用MVC模式。在此代码中,它显示了如何设置控制器。任何人都可以解释为什么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);

3 个答案:

答案 0 :(得分:6)

在最后一行的jQuery前面没有美元符号,因为包含jQuery的变量的名称是jQuery,而不是$jQuery。它会立即以$传递,以避免命名冲突。

答案 1 :(得分:2)

简单地说,它确保在该上下文中没有其他任何名称为$

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);

答案 2 :(得分:1)

传递给函数的jQuery在函数中提供$的参数。换句话说,为了保证函数理解$是jQuery对象,传递jQuery完整对象名而不是$ shortcut。这有助于其他javascript库正在使用并可能竞争$ assignment。