jquery源码中,
(function ($) { ....... } (jQuery));
这种写法的意思是,好处是?
拿匿名函数做类似命名空间, 避免污染全局或者被全局污染
这样可以声明一个匿名函数:
function() {}
这样就可以声明后直接执行它:
(function() {}
)();
再加上参数:
(function($) {})(jQuery);
也就相当于:
function foo($) {
}
foo(jQuery);
但区别在于, 前者没有在全局作用域产生 foo 这个变量.
大家都说到点子上了,我在补充下,以帮助理解。
var a = function(arg){
//code
}
/*这里调用a*/
a(arg);
/*也可以这么写*/
(a)(arg);
/*a替换成上面声明的值*/
(function(arg){
//code
})(arg)
这么做,声明匿名函数,防止污染全局变量。
很简单啊。“拿匿名函数做类似命名空间, 避免污染全局或者被全局污染” 基本上说对了,是防止跟prototype引擎冲突。
正文完