更全面的理解参看:http://www.cnblogs.com/TomXu/archive/2012/01/30/2326372.html
问:如何理解(function($) {})(af); 及其参数传递
答:(function($) {})(af); 是立即执行的匿名函数,即闭包
答:(function($) {})(af) == function($){}(af)
答:或者写成:function a($){ } ; a(af);
答:那个函数里的$就是函数外的af
答:你把这个拆开一步一步看,它是个简写而已
如下:
var a = 0;
function sum(x){
return x+1;
}
sum(a);
简写1:
var a = 0;
function sum(x){
return x+1;
}(a)
简写2:
var a = 0;
function (x){
return x+1;
}(a)
简写3:
var a = 0;
function (x){return x+1;}(a)
简写4:
var a = 0;
(function (x){return x+1;})(a)
这样即和(function($) {})(af);是一样的了。
再比如:
var a = 0;
function sum(x){
return x+1;
}
alert(1);
sum(a);
___________________
var a = 0;
function sum(x){
return x+1;
}(a)
alert(1);
下面那种写法就是确保函数可以立即被执行,不被其他代码阻塞