在写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 });