跟随函数 (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);
下面是 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);