に続くように、interface同様のアーキテクチャを実装しようとしていました。そして、つまずきに遭遇しました。コードサンプルは次のとおりです。JSC#
// 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??
これが私がやっている正しい方法であるかどうか、誰かに教えてもらえますか?