函数
函数的双重作用
函数在语义上分为普通函数和构造函数。
构造函数要用 new 来调用创建实例。但是我们无法区分调用者是否通过 new
来调用。
ES6 新增 new.target
来帮助我们判断是否通过new
调用函数。
如果是用 new 调用,new.target
返回函数本身,否则返回 undefined
箭头函数
注意
- 箭头函数的函数体中的
this
取决于箭头函数定义的位置的this
指向,与如何调用函数无关。 - 箭头函数中不存在
this、arguments、new.target
如果使用了,则使用的是函数外层的对应的this、arguments、new.target