对静态子属性的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
,它将引用类。看:是的,它正在工作。非常感谢,我没有想到…:悲哀的: