前几天一个同事问我如下的JavaScript代码如何理解
(function($){})(jQuery);
其实比较简单,要理解几个概念:
1、(),在JavaScript里()表示执行一个方法,如:
function x(){
alert("xxx");
}
var a = x; // 没有调用,a 是一个function
var a = x(); //调用了函数,a 的值是调用的结果:undefined
2、jQuery是一个jQuery对象,表示调用函数时,传入一个参数是jQuery对象。
这个没什么好说的
3、(function($){})这是一个匿名函数,形参是$,括号是一定需要的。
这样一看就懂了,上式相当于
var f = function($){};
f(jQuery);
什么函数定义部分加个"()"?
其实这个"()"没有特殊含义,只是把函数对象作为一个整体。
如果不加"()"那么 就是"function(){return 1}()"这明显是一个语法错误。
另外函数这么定义的原因就是为了封闭作用域而不至于污染其他文件。