に続くように、interface
同様のアーキテクチャを実装しようとしていました。そして、つまずきに遭遇しました。コードサンプルは次のとおりです。JS
C#
// Interface for UIBuilder classes
function IUIBuilder() {
this.addUserToList = function () {
alert('parent: added');
};
}
// Class implementing the IUIBuilder
function ChatUIBuider() {
IUIBuilder.prototype.addUserToList = function () {
alert('child: added');
};
IUIBuilder.prototype.removeUserFromList = function () {
alert('child: removed');
};
return new IUIBuilder();
}
addUserToList
最初のクラスでは、2 番目のクラスでオーバーライドするメソッドを定義しましたChatUIBuider
。removeUserFromList
また、プロトタイプを使用して基本クラスにもう 1 つのメソッドを追加しました。
私の問題は、addUserToList
子クラスでオーバーライドされた後でも、メソッドが親クラスのメソッドを呼び出すことです。なんで?
var builder = new ChatUIBuider();
builder.removeUserFromList(); // Invokes the child class method. - CORRECT
builder.addUserToList(); // Invokes the base class method- WHY??
これが私がやっている正しい方法であるかどうか、誰かに教えてもらえますか?