对静态子属性的Javascript访问

对静态子属性的Javascript访问,javascript,ecmascript-6,Javascript,Ecmascript 6,我有这种情况 import assert from 'assert' class A { static x = 0 static a () { return A.x } } class B extends A { static x = 1 } assert.equal(B.a(), 1) 我需要从JSES6中的基类检索派生类中的静态值。 但是,我找不到办法 断言将以失败告终 AssertionError [ERR_ASSERTION]:

我有这种情况

import assert from 'assert'

class A {
    static x = 0

    static a () {
        return A.x
    }
}

class B extends A {
    static x = 1
}

assert.equal(B.a(), 1)
我需要从JSES6中的基类检索派生类中的静态值。 但是,我找不到办法

断言将以失败告终

AssertionError [ERR_ASSERTION]: 0 == 1
正确的方法是什么

  • 谢谢

    • 在这里,您直接请求
      A.x
      。您应该调用
      this.x
      以在类型为
      A
      的对象上获取
      A.x
      ,并在类型为
      B
      的对象上获取
      B.x

      只要做以下更改,它就可以正常工作:

      static a () {
          return this.x;
      }
      

      你要的是
      A.x
      ,它还能给你什么价值?尝试
      this.x
      。它似乎有效:您可以在静态方法中使用
      this
      ,它将引用类。看:是的,它正在工作。非常感谢,我没有想到…:悲哀的: