1.什么是匿名函数?
JS中定义函数的三种方式:
A. function getName(x){alert(x);};
B. var getName=function (x){alert(x);};
C.var getName=new function('x','alert(x)');
上面定义了同一个函数getName,以第一种最为常见,后两种都是把一个函数赋值给变量getName,而这个函数是没有名字的,这就叫匿名函数。匿名函数的命名最常见的规则:function(){};没有函数名。
注意:如果我们在函数中定义了一个匿名函数,当在控制台显示时是会出错的。如下:
eg:
<script type="text/javascript">
function (){
console.log('hello');
}
</script>
要是想正确显示,需要把这个匿名函数赋值给一个变量;
2.匿名函数的使用
①将匿名函数赋值给变量
var a=function(){
console.log('hello');
}
a();
结果为:hello;
②匿名函数的自我执行
简单的理解就是别人叫你某某,这个某某就代表你自己,那么你自己也可以代表你自己,所以匿名函数也一样,别的变量可以代表它,那么它自己也可以代表他自己。
语法:( function(){} )( );匿名函数在括号内,代表函数名,后面再跟个括号,代表函数调用。
eg:
(function(){
alert('hello');
})();
③无参的匿名函数
(function(){
console.log('hello');
}
)();
④有参的匿名函数
(function(r){
var area=Math.PI*r*r;
console.log(area);
})(10)
⑤带返回值的匿名函数
var b=(function(r){
return Math.PI*r*r;
})(10);
console.log(b);
结果和④一样