Son birkaç saatimi sorunuma bir çözüm bulmaya çalışarak geçirdim ama umutsuz görünüyor.
Temelde bir alt sınıftan bir ebeveyn yöntemi çağırmak için bilmek gerekir. Şimdiye kadar denedim tüm şeyler ya çalışma ya da üst yöntemi yazarak sona erer.
Javascript OOP kurmak için aşağıdaki kodu kullanıyorum:
// 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);
Önce ebeveynin yöntemini çağırmak ve daha sonra çocuk sınıfta bazı şeyler eklemek gerekir.
Çoğu OOP dilinde çağırmak kadar basit olurdu parent.myMethod()
ama javascript'te nasıl yapıldığını gerçekten kavrayamıyorum.
Herhangi bir yardım çok takdir, teşekkür ederim!
ParentClass.prototype.myMethod.apply() or
kurucunuzda yaptığınız gibi ParentClass.prototype.myMethod.call () `yi yapmanız gerekir.