Я витратив останні кілька годин, намагаючись знайти рішення своєї проблеми, але це здається безнадійним.
В основному мені потрібно знати, як викликати батьківський метод з дочірнього класу. Усі речі, які я намагався до цього часу, закінчуються або не працюючими, ні надмірними написаннями батьківського методу.
Я використовую наступний код для налаштування OOP в JavaScript:
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) {
// HOW DO I CALL THE PARENT METHOD HERE?
// do stuff
}
}
// setup the prototype chain
extend(ParentObject, ChildObject);
Мені потрібно спочатку зателефонувати з батьківським методом, а потім додати до нього ще деякі речі в дочірньому класі.
У більшості мов OOP це було б так просто, як дзвонити, parent.myMethod()
але я дійсно не можу зрозуміти, як це робиться в JavaScript.
Будь-яка допомога дуже вдячна, дякую!
ParentClass.prototype.myMethod.apply() or
ParentClass.prototype.myMethod.call () `, як це робите зі своїм конструктором.