箭头函数和普通函数有以下区别:
-
箭头函数是匿名函数,而普通函数可以是命名函数或匿名函数。
-
箭头函数没有自己的
this
值,它继承自父作用域的this
值,而普通函数的this
值则依赖于函数的调用方式。在箭头函数中,使用this
关键字会引用它的外层函数的this
值,而在普通函数中,this
关键字的值取决于函数是如何被调用的,可能会被绑定到不同的对象上。 -
箭头函数不能被用作构造函数,不能使用
new
关键字实例化,而普通函数可以被用作构造函数,可以通过new
关键字实例化。 -
箭头函数没有
arguments
对象,不能使用arguments
变量来访问函数的参数,而普通函数可以通过arguments
对象访问它们的参数。 -
箭头函数不具有
prototype
属性,因此它不能被用作基础构造函数,而普通函数可以作为基础构造函数来创建对象。 -
箭头函数不支持
yield
关键字,不能用于生成器函数,而普通函数可以用于生成器函数。
总之,箭头函数和普通函数都有其自己的特点和用途。箭头函数更适合用于简单的行内函数,而普通函数则更适合于需要访问它们的 this
关键字,或需要更好的可读性和可维护性的函数。