私有作用域的优点
减少全局变量,避免命名冲突, 减少闭包占用内存问题,因为没有指向匿名函数的引用。只要函数执行完毕,就可以立即销毁其作用域。 因为没有指向匿名函数的引用,匿名函数的作用域链在代码执行后销毁。
匿名函数
匿名函数表达式提供了创建私有作用域的方法
<!-- lang:js -->
(function(){
//块级作用域
})();
很多人感到这样很奇怪,那么看下面,你就很熟悉了 <!-- lang:js --> var func = function(){ //块作用域 } func(); OK,那么根据这个原则,(function(){})()就不会感到陌生了,第一个小括号是将匿名函数包裹起来,看做一个整体的函数对象,第二个括号很明显是一个函数调用的括号 栗子
<!-- lang:js -->
(function(){
alert('匿名函数');
})();
再来一个栗子
<!-- lang:js -->
(function(x,y){
alert(x+y);
})(10,100);
注意:最后的分号,这是一个调用函数
最后的栗子
加深一下印象,计算1到100的和
<!-- lang:js -->
(function(m,n){
var total=0;
if(m>=n){
alert(" 数值范围不正确! ");
return false;
}
for(var i=m;i<=n;i++){
total+=i;
}
alert(total);
})(1,100);