静的関数をes 6クラス内の通常のメンバー関数から呼び出すにはどうすればよいですか?私はes6の静的でないメンバー関数内で静的なgetterを呼び出すjavascriptクラス
speak() {
console.log(Animal.name + ":"+ this.speech)
}
しかし、これは動物クラスからの出力名を常に希望を返すように話すの機能を変更することができ
class Animal {
constructor(text) {
this.speech = text;
}
static get name() {
return "Animal";
}
speak() {
console.log(this.name + ":"+ this.speech)
}
}
class Tiger extends Animal {
static get name() {
return "Tiger"
}
}
var animal = new Animal("hey there");
animal.speak();
var tiger = new Tiger("hello");
tiger.speak();
// output:
// undefined:hey there
// undefined:hello
、しかし、私が欲しいのは、出力に次のとおりです。ここで
は一例です現在のクラスの静的nameプロパティ(サブクラス内の "Tiger"など)どうやってやるの?
(静的メンバーはコンストラクタ関数のプロパティであり、[Object.prototype.constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor)はあなたを助けていますザールe)。しかし、私はそれが最高の/クリーンな解決策であるかどうかは不明です。 – ASDFGerte
なぜそれは静的ですか? –