js 箭头函数和普通函数区别

  1. 箭头函数不能作为构造函数,而普通函数可以
  2. 箭头函数没有原型,而普通函数有
  3. 箭头函数 return 可以省略语句块。(如果=>右边不是语句块,则代表 return 右边的表达式或对象)
  4. 箭头函数不绑定 arguments(注意:浏览器环境下获取箭头函数的 arguments 会报错),而普通函数 argument 绑定了参数列表对象
  5. 箭头函数内不能用 yield 且不能用作 Generator 函数,而普通函数可以。
  6. this 指向问题 箭头函数的 this 指向上层函数作用域的 this 对象,如果没有上层函数作用域,则指向顶部 this(在浏览器中顶部 this 则是 window)。普通函数的 this 指向该函数的调用者。 call, apply, bind 会改变普通函数的 this,但不会改变箭头函数的 this
上次更新:
贡献者: 郑壮