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