13.6 箭头函数与常规函数对比
一个箭头函数与一个普通的函数在两个方面不一样:
- 下列变量的构造是词法的:
arguments
,super
,this
,new.target
- 不能被用作构造函数:没有内部方法
[[Construct]]
(该方法允许普通的函数通过new
调用),也没有prototype
属性。因此,new (() => {})
会抛出错误。
除了那些意外,箭头函数和普通的函数没有明显的区别。例如, typeof
和 instanceof
产生同样的结果:
> typeof () => {}
'function'
> () => {} instanceof Function
true
> typeof function () {}
'function'
> function () {} instanceof Function
true
参阅可调用实体的那一章,获取更多关于什么时候使用箭头函数和什么时候使用传统函数的信息。
函数表达式和对象字面量是例外,这种情形下必须放在括号里面,因为它们看起来像是函数声明和代码块。