跟随函数 (jQuery)

Following a function with (jQuery)

下面是 jQuery 函数后跟的函数示例:

<script> 
    (function ($)
    {
        $('a').mouseenter(
        function () { alert(this.id); });
    })(jQuery);
</script>

我进行了大量搜索并通读了 jQuery Succinctly,但我真的很难理解传入 $ 符号或跟随 (jQuery) 函数的作用.谁能为我澄清一下?

奖金问题:这与扩展 jQuery 方法有什么关系吗?我正在研究尝试扩展 .html() 方法。

你有一个函数,它接受一个名为 $ 的参数。 然后您调用该函数并将其作为参数传递 jQuery 。 这允许您在函数 中将 $ 用作 shorthand for jQuery 。当出于某种原因不能在所有地方使用 $ shorthand 时,它很有用。

您将包 jQuery 作为参数传递给函数,以确保 $ 是 jQuery.

的别名

该构造被称为 IIFE - Immediately-Invoked Function Expression。第一组括号内的表达式的结果是一个带有一个参数(名为 $)的函数。第二组括号然后立即调用传入 jQuery 对象的函数。

这是一种常用模式,用于避免污染周围(或全局)范围。

美元符号 ($) 是传递给立即调用函数表达式的 jQuery 对象的别名。它可以很容易地成为一个不同的角色。

这是一个小例子:

/* 
 Here's my huge library akin to jQuery's (albeit with slightly less functionality). 
 */
function MySuperLibrary(){
    this.foo = function(bar){alert(bar);}
};
var msl = new MySuperLibrary;//a new instance of My Super Library

/* 
 Here I'm Immediately Invoking a function and passing the msl instance to it.
 I've used the 'X' character for its namespace within the closure in the same way as jQuery uses a $.
 */
(function(X){
    X.foo("foobar");
})(msl);