函数表达式最常出现的场景可能就是回调参数。
setTimeout( function() {
console.log("I waited 1 second!");
}, 1000 );
函数表达式可以是匿名的,而函数声明不可以省略函数名。
匿名函数优缺点
优点
有独立的作用域,适合开发模块和插件
缺点
在栈追踪中不会显示出有意义的函数名,使得调试困难。
- 省略了函数名,降低了可读性
- 在递归中如果需要引用自身只能使用已过期的
arguments.callee
,在事件触发后事件监听器需要解绑自身的情况下也一样。