如果我写这段代码:
(function($){})
这是否意味着在这个函数中我可以写而不是单词“function”只是“$”。
谢谢你解释这个。
不,这意味着 $ 可以在该上下文中以特定含义使用。$
当两个或更多工具包使用类似变量时,经常使用这种东西。例如,jQuery 通常这样编写来处理文档就绪方法:
jQuery(function($) {
$('#div').something()...
});
这样,即使您在其他地方打电话,您也可以确定这$
将意味着在这种情况下。jQuery
jQuery.noConflict
这种特殊的语法(function($){})
通常是这样完成的:
(function($){
})(jQuery);
这样做是为了创建一个匿名函数并使用特定的上下文调用它。通常它用于执行诸如将循环的特定迭代传递给 AJAX 操作之类的操作(例如,如果您想在运行五次的循环内进行 5 次 ajax 调用)。例子:
for (var x = 0; x < 5; x++) {
(function(index) {
$.ajax(url, { data... }, success(data) {
if (data.y == index)....
});
})(x);
}
它是一个匿名函数,以 $ 作为参数以在本地范围内使用它。
它可以这样调用:
(function($){ SOME_OPERATIONS_WITH_$ ;})(theObjectBeingPassedAsDollar)
例如。jQuery 对象可以传递给这个实例,它会在匿名函数中用作 $
这将提醒HelloWorld
:
(function($){ alert($.one + $.two); })( {'one':'Hello','two':'World'} )
演示:http: //jsfiddle.net/Pg9s4/