Javascript 访问静态子属性

标签 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)

我需要从 Js es6 中的基类检索派生类中的静态值。 但是,我找不到办法,

断言将失败

AssertionError [ERR_ASSERTION]: 0 == 1

正确的做法是什么?

  • 谢谢

最佳答案

在这里,您直接请求 A.x。你应该调用 this.x 来获取 A.x 当你在一个类型为 A 的对象上并获取 B.x当您在类型为 B 的对象上时。

只需进行以下更改,它应该可以正常工作:

static a () {
    return this.x;
}

关于Javascript 访问静态子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480452/

相关文章:

javascript - 将变量从 Controller 范围传递到指令

javascript - Angular 验证: Restrict server request if user enters invalid email or password

javascript - 从 Observable 列表创建 Observable 对象

ecmascript-6 - 使用参数获取 API 不适用于 Edge 14

javascript - 如何检查谷歌地图是否已满载?

javascript - 如何在javascript中最好地搜索和更新两个对象数组?

javascript - 如何在 Ember 中通过 id 和查询参数查找记录

javascript - 如何处理来自多个 then in catch of javascript promises 的错误?

javascript - 为 Javascript 类创建静态或类变量的现代方法

javascript - Java脚本过滤对象数组并将结果的一个元素推送到另一个数组