类中的箭头函数

代码 1:

class X1 {
  x = 1;
  get = () => this;
}
a = new X1();
console.log(a.get());

代码 2:

var X1={
    x:1,
    get:()=>this
}
console.log(X1.get())

我不知道为什么代码 1 的结果是 X1 但代码 2 是窗口。希望大家帮帮我!!

回答

类字段是用于在构造函数中赋值的语法糖。代码 1 相当于:

class X1 {
  constructor() {
    this.x = 1;
    this.get = () => this;
  }
}

在构造函数内部,this指的是正在创建的实例 - a. 箭头函数this从它们的外部作用域继承。因此this.get = () => this;,返回的结果与外部作用域中this的相同this- 实例,或a.

在代码 2 中,外部作用域是顶层this顶层是全局对象(在浏览器中,即window),或undefined. 因此,箭头函数get返回this返回this上顶层-在马虎模式在浏览器中,这是该窗口。


以上是类中的箭头函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>