微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6 中 static 的this 丢失问题解决办法 简单明了 备注清晰 谢谢欣赏

class A {


  constructor(name,age  ) {            把constructor整体换成:
  this.name = name;                     ====> static name = 'qwe';
  this.age = age                            ====>static age = 12;
  }

                    后得到    
  say(){
  console.log(this)               =======>a
  console.log(`I am ${this.name}`)     ====>I am undefined
  }
  static sss(){
  console.log(this)                             ========>class A
  console.log(`I am ${A.age}`)            =======>12
  console.log(`I am ${A.name}`)           =======>qwe
  }
}

var a = new A();
a.say()

A.sss()

只有静态方法才能调用静态属性,相对性调用才行,要不然this指向会丢失

解决办法就是 给静态属性直接赋值

静态方法才可调用属性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐