Javascript 中的箭头函数
javascriptfront end technologyobject oriented programming更新于 2024/5/18 16:12:17
根据 MDN,箭头函数表达式是常规函数表达式的一种语法紧凑的替代方法,尽管它没有自己的 this、arguments、super 或 new.target 关键字绑定。箭头函数表达式不适合用作方法,也不能用作构造函数。
JavaScript 中的常规函数和箭头函数有 3 个细微的差别。
没有自己的 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
可以看到箭头函数在其作用域之外更改了此对象。常规函数只是在其自身内进行了更改。
- 箭头函数没有参数数组 在 JS 中,函数中的参数数组是一个特殊对象,可用于获取传递给函数的所有参数。与此类似,箭头函数没有自己与参数对象的绑定,而是与封闭范围的参数绑定。
- 箭头函数可调用但不可构造。如果函数是可构造的,则可以使用 new 来调用它,即 new User()。如果函数是可调用的,则可以不使用 new 来调用它(即正常函数调用)。
通过函数声明/表达式创建的函数既可构造又可调用。
箭头函数(和方法)仅可调用。类构造函数仅可构造。
如果您尝试调用不可调用的函数或构造非构造函数,则会出现运行时错误。
示例
let arrowFunc = () => {}
new arrowFunc()
输出
此代码给出错误 −
arrowFunc is not a constructor
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

