2017-11-24 2 views
3

は私がのJS ES6で、基本クラスから派生クラスの静的な値をretriveする必要がJavascriptのアクセスが

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) 

このような状況を持っている属性。 しかし、私は

アサーションます

AssertionError [ERR_ASSERTION]: 0 == 1 

これを行うための正しい方法は何で失敗し、方法を見つけることができませんか?

  • ここで感謝
+1

あなたはA.x' 'のために求めている、他のどのような値それはあなたを与えるだろうか? 'this.x'を試してみてください。 – Blorgbeard

+1

動作しているようです:https://repl.it/repls/IndolentNeighboringRhesusmonkey – Blorgbeard

+0

静的メソッドで 'this'を使用できます。クラスを参照します。参照:https://stackoverflow.com/a/34056740/369 – Blorgbeard

答えて

1

、あなたは直接A.xのために求めています。品物がAの場合はthis.xに電話してA.xを、種類がBの場合はB.xを取得する必要があります。

ただ、次の変更を行い、それが正常に動作する必要があります:

static a() { 
    return this.x; 
} 
関連する問題