函数

# 函数

# 函数的双重作用

函数在语义上分为普通函数和构造函数。

构造函数要用 new 来调用创建实例。但是我们无法区分调用者是否通过 new 来调用。

ES6 新增 new.target 来帮助我们判断是否通过new调用函数。

如果是用 new 调用,new.target 返回函数本身,否则返回 undefined

# 箭头函数

注意

  • 箭头函数的函数体中的this 取决于箭头函数定义的位置的this指向,与如何调用函数无关。
  • 箭头函数中不存在this、arguments、new.target 如果使用了,则使用的是函数外层的对应的this、arguments、new.target