Skip to content
大纲

箭头函数与普通函数区别

箭头函数定义

箭头函数表达式的语法比传统的函数表达式更简洁,但在语义上有一些差异,在用法上也有一些限制:

箭头函数没有独立的 thisargumentssuper 绑定,并且不可被用作方法。 箭头函数不能用作构造函数。使用 new 调用它们会引发 TypeError。它们也无法访问 new.target 关键字。 箭头函数不能在其主体中使用 yield,也不能作为生成器函数创建。

好处

  1. 更简洁的语法: 箭头函数提供了一种更简洁的方式来编写函数,特别是当函数体很短或者不需要自己的 this、arguments 或 super 时。 传统函数:

  2. 不绑定自己的 this: 箭头函数不会创建自己的 this 上下文,所以 this 的值继承自包围它的函数执行上下文(在非严格模式下)或全局对象(在严格模式下)。这使得在回调函数、事件处理器或任何不期望或不方便创建新 this 上下文的地方使用箭头函数特别有用。

  1. 更少的错误: 由于箭头函数不绑定自己的 this,它们减少了因错误地引用 this 而导致的错误。这使得它们在处理回调函数和事件监听器时特别有用。

弊端

注意点

  1. this 指向
  2. 没有 prototype 属性 不能作为构造函数
  3. 不能再其中使用 yield 关键字
  4. 没有自己的 arguments 对象。但是,你可以使用剩余参数(...args)来替代它

与普通函数区别

  1. 箭头函数的this指向其定义时的所在的函数对象,bind、aplly、call 显示绑定也无法改变
  2. 不能作为构造函数
  3. 没有 arguments 对象

Released under the MIT License.