在写js的时候,还是经常会用的匿名函数表达式,比如
1 setTimeout(function() { 2 console.log(110); 3 }, 1000);
上面那个function()就是匿名函数表达式了,这种写法的好处是书写简单快捷,不用考虑给函数取名,十分方便。
但是,也有几个缺点:
1. 匿名函数在栈追踪中不会显示有意义的函数名,使得调试起来很困难
2. 匿名函数无法调用自身,只能使用arguments.callee引用
3. 匿名函数省略了对于代码的可读性,一个有函数名的函数能见名知意
所以,像上面的行内函数表达式很常见,也很强大有用,匿名和具名之间的区别在这点上没有任何影响,给匿名函数具名能有效避免以上的缺点,算得上是一个最佳实践了。
1 setTimeout(function thisIsTest() { 2 console.log(110); 3 });