Как вызвать метод родительского класса из подкласса в JavaScript, чтобы были доступны локальные переменные родителя?
Я использую один из подходов к наследованию классов в JavaScript (который используется в коде, который я изменяю), но я не понимаю, как присоединить дополнительные функциональные возможности для метода в подклассе к функциональным возможностям, которые уже имеет соответствующий метод родительского класса ; Другими словами, я хочу переопределить метод родителя в дочернем классе с помощью метода, который помимо своих собственных специфических для подклассов вещей делает то же самое, что и метод родителя. Итак, я пытаюсь вызвать метод родителя из метода ребенка, но возможно ли это вообще?
Код здесь:http://jsfiddle.net/7zMnW/, Пожалуйста, откройте консоль разработки, чтобы увидеть вывод.
Код также здесь:
function MakeAsSubclass (parent, child)
{
child.prototype = new parent; // No constructor arguments possible at this point.
child.prototype.baseClass = parent.prototype.constructor;
child.prototype.constructor = child;
child.prototype.parent = child.prototype; // For the 2nd way of calling MethodB.
}
function Parent (inVar)
{
var parentVar = inVar;
this.MethodA = function () {console.log("Parent's MethodA sees parent's local variable:", parentVar);};
this.MethodB = function () {console.log("Parent's MethodB doesn't see parent's local variable:", parentVar);};
}
function Child (inVar)
{
Child.prototype.baseClass.apply(this, arguments);
this.MethodB = function ()
{
console.log("Child's method start");
Child.prototype.MethodB.apply(this, arguments); // 1st way
this.parent.MethodB.apply(this, arguments); // 2 2nd way
console.log("Child's method end");
};
}
MakeAsSubclass(Parent, Child);
var child = new Child(7);
child.MethodA();
child.MethodB();