js中常常定义一个函数用做临时的命名空间,在这个命名空间内定义的变量都不会污染到全局命名空间(防止局部变量与全局变量冲突)。
function mymodule(){
//模块代码
}
mymodule();
可以简写为:
(function(){ //mymodule()函数重写为匿名的函数表达式
//模块代码
}( )<span style="color:#ff0000;">)</span>; //结束函数定义并立即调用它
或者:
(function(){
}<span style="color:#ff0000;">)</span>();
这种定义匿名函数并立即调用(自调用匿名函数)的写法已经非常常见,开始让人有点摸不着头脑,jquery的源码就是这样写的:
(function( window, undefined ) {
//jquery的所有代码
})( window );