es6中class中的static方法中的this指向哪里?

class De {
  static fun() {
      console.log(this) //这个this指向哪里?
  }
}
阅读 10.2k
4 个回答

首先要理解es6中class到底是什么。
1、js中没有真正的class,class就是function
2、class中static声明的变量或者函数,是function的属性

class De {
  static fun() {
      console.log(this) //这个this指向哪里?
  }
}

等价于

function De(){

}

De.fun = function(){
    console.log(this)
}

3、从上面代码可以知道 this就是指向De(函数中的this指的是调用函数的对象,De调用了fun)

类本身。类也是函数,也是对象。

当然是类本身,类的静态方法可以看做是类的一个属性,类中定义的静态方法可以使用this+其他静态方法名来访问其他静态方法,而非静态方法都是挂在类的原型上。
图片描述
图片描述

指向自己的上下文,在JavaScript这门语言中 类是es6出来的,即是函数也是对象,JavaScript是通过原型进行继承的,访问的即是类的方法或属性

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏