JavaScript 中常规函数和箭头函数之间的区别
javascriptfront end technologyobject oriented programming更新于 2025/11/21 11:56:17
根据 MDN,箭头函数表达式是常规函数表达式的语法紧凑替代方案,尽管它没有自己与 this、arguments、super 或 new.target 关键字的绑定。箭头函数表达式不适合用作方法,也不能用作构造函数。
JavaScript 中的常规函数和箭头函数有 3 个细微的差别。
没有自己的 this 绑定
箭头函数没有自己的 this 值。箭头函数内部的 this 值始终从封闭范围继承。
示例
this.a = 100;
let arrowFunc = () => {this.a = 150};
function regFunc() {
this.a = 200;
}
console.log(this.a)
arrowFunc()
console.log(this.a)
regFunc()
console.log(this.a)
输出
100 150 150
可以看到箭头函数在其范围之外更改了 this 对象。常规函数只是在其自己的 this 内进行了更改。
箭头函数没有参数数组
在 JS 中,函数中的参数数组是一个特殊对象,可用于获取传递给函数的所有参数。与此类似,箭头函数没有自己的参数对象绑定,它们绑定到封闭范围的参数。
箭头函数可调用但不可构造
如果函数可构造,则可以使用 new 来调用它,即 new User()。如果函数可调用,则可以不使用 new 来调用它(即正常函数调用)。
通过函数声明/表达式创建的函数既可构造又可调用。
箭头函数(和方法)仅可调用。类构造函数仅可构造。
如果您尝试调用不可调用的函数或构造不可构造的函数,您将收到运行时错误。
let arrowFunc = () => {}
new arrowFunc()
This code gives the error:
arrowFunc is not a constructor
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

