JavaScriptで抽象ファクトリメソッドを使用するにはどうすればよいですか?たとえばJavaの場合:JavaScriptで抽象ファクトリメソッドを実装する方法は?
public abstract class SuperClass {
abstract String bar();
public String foo() {
return bar();
}
}
public class SubClass extends SuperClass{
@Override
String bar() {
return "bar";
}
}
public class Test {
public static void main(String[] args) {
System.out.println(new SubClass().foo());
}
}
これはbar
を示しています。しかし、JavaScriptでこれを試したときには、Uncaught TypeError: Cannot read property 'bar' of undefined
が得られます。私はバグを追跡し、SuperClass.prototype.foo
が実行されているときにSubClass.prototype
はまだundefined
です。
これを行う正しい方法は何ですか?ありがとうございます!
私はそれが愚かな質問だと気付いていますが、まだお返事いただきありがとうございます! – user3928256
さらに重要なのは、 'this.bar()'を使うことによって 'bar()'のスコープがprototype-objectではなく現在のインスタンスに設定されることです。 'this'のプロパティにアクセスするときに重要であるかもしれませんし、それらを変更するときにさらに重要になります。 – Thomas
@トーマス、よく言った!私はそれに言及するのを忘れていた。 – Dimos