0
次のコード拡張プロトタイプ、継承、及びスーパー
const A = class {
constructor(...args) {
A.prototype.constructor.apply(this, args);
}
};
A.prototype.constructor = function(name) {
this.name = name;
};
A.prototype.print = function() {
console.log(this.name);
};
const B = class extends A {};
B.prototype.print = function() {
super.print();
console.log('In B!');
};
B.prototype.print
でsuper.print()
の線は'super' keyword unexpected here
の構文エラーをスローを検討します。どうして?
他の言語のようにスーパークラスを呼び出すことができないのはなぜですか?これを行う正しい方法は何ですか? JavaScriptで
本当の恥です。このようなプロトタイプを拡張する際に「スーパー」サポートがない理由はありますか? – Spedwards
これは最終的に、クラスがJavaScriptに移植されたときの設計上の決定でした。もちろん、他の言語にもこの概念がありますが、別のキーワード(C#の 'base'など)を使用していることに注意してください。 –