匿名函数与函数表达式
与匿名函数相对的是命名函数——如果函数有名字就是命名函数,反之即为匿名函数。
函数的一般定义方式为函数声明:
1 | function 函数名(){ |
函数的另一种定义方式:
1 | var fn = function() { |
函数声明与函数表达式
乍一看会觉得函数声明的方式来定义函数比较方便,但是函数声明和函数表达式是存在区别的。
1 | //函数声明 |
匿名函数自调用
匿名函数自调用也叫做“立即执行函数”,在声明的同时立即直接执行,一次性。
一般如以下两种形式:
(function (){}()); W3C建议第一种
(function (){})();
1 | //函数自调用 |
立即执行函数,执行后即被释放。
1 | //例子1 |
循环添加事件时不宜使用匿名函数
在下面这个例子中要显示li的高亮,不推荐写这样的代码:
1 | //为li添加鼠标进入事件 |
这种匿名函数的写法不会错,但是每次循环都会产生一个匿名函数占用内存,这样子效率不高,浪费空间。
所以我们推荐在循环添加事件的时候用命名函数:
1 | <script> |