オンラインで見つけたさまざまな例に基づいて、JavaScriptでポリモーフィズムを練習しています(初めて試してみました)。他の言語では、拡張されたものからスーパークラスの変数にアクセスできることを知っており、JavaScriptでこれを正しく行う方法を考えています。以下のコードはエラーをスローしませんが(少なくともFirefoxのエラーコンソールに関する限り)、statement
で定義されていませんExtendedClass
。
function MyClass() {
this.statement = "I'm a class with a method";
this.speak = function() {
alert(this.statement);
}
}
var mInstance = new MyClass();
mInstance.speak();
function ExtendedClass() {
Object.create(MyClass);
this.speak = function() {
alert(this.statement+" and I extend a class");
}
}
var eInstance = new ExtendedClass();
eInstance.speak();
statement
からアクセスできますExtendedClass
か?これはポリモーフィズムを実装するための良い方法ですか?