本站资源是站长搜集整理而成,版权均归原作者所有,若无意中侵犯到您的版权利益,请来信联系我们删除! 本站所有资源只用于研究学习,不得作为商业用途、非法谋取暴利,否则,一切后果均由自己承担!

首页 > 教程

class中函数的this指向

  • slbcun
  • 2025-04-07
  • 921 ℃

定义一个基础的类

class Person {
  constructor(name = "杜恒") {
    this.name = name;
  }
  speak() {
    console.log(this);
  }
}

将上面的类实例出一个对象p,并调用p的speak方法

const p = new Person();
p.speak(); // Person {name: "杜恒"}

上面的打印结果显示由类构造出的实例对象,因此this会指向由类构造出的实例对象


尝试将p实例对象身上的speak方法赋值给另一个变量进行调用

const test = p.speak;
test(); // undefined

打印undefind,因此上面的方法可以改写成如下

const test = function () {
  "use strict";
  console.log(this);
};
test(); // undefined

由此可以得出,在class中,定义的方法,class会默认在函数体内开启严格模式,严格控制this的指向

文章评论 (0)

    • 这篇文章还没有收到评论,赶紧来抢沙发吧~


Top