如果我写这段代码:
(function($){})
这是否意味着在这个函数中我可以只用“$”来代替单词“function”。
感谢您解释此事。
答案 0 :(得分:1)
没有。这意味着$可以在该上下文中使用特定含义。当两个或多个工具包使用$
之类的变量时,经常会使用这种方法。例如,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);
}
答案 1 :(得分:1)
这是一个匿名函数,以$作为参数在本地范围内使用它。
可以像这样调用:
(function($){ SOME_OPERATIONS_WITH_$ ;})(theObjectBeingPassedAsDollar)
例如。 jQuery对象可以传递给这个实例,它将在匿名函数中用作$
这会提醒HelloWorld
:
(function($){ alert($.one + $.two); })( {'one':'Hello','two':'World'} )
<强>演示:http://jsfiddle.net/Pg9s4/ 强>