Я думал, что хорошо понимаю, как правильно расширять классы в JavaScript, но при расширении подкласса я запускаю бесконечный цикл, когда переопределяю метод, и вызов родительского метода из дочернего класса. Я либо делаю это неправильно, либо просто не должен подкласса в JavaScript.Как правильно подклассы подкласса в JavaScript?
Может ли кто-нибудь помочь воспитывать меня, пожалуйста?
var Grand = function() {
\t this.test();
};
Grand.prototype.constructor = Grand;
Grand.prototype.test = function() {
\t console.log("Grand!")
};
var Parent = function() {
this.supr.constructor.call(this);
};
Parent.prototype = Object.create(Grand.prototype);
Parent.prototype.constructor = Parent;
Parent.prototype.supr = Grand.prototype;
Parent.prototype.test = function() {
\t this.supr.test.call(this);
console.log("Parent!");
};
var Child = function() {
this.supr.constructor.call(this);
};
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
Child.prototype.supr = Parent.prototype;
Child.prototype.test = function() {
\t this.supr.test.call(this);
console.log("Child!");
};
var g = new Grand(); // Outputs "Grand!"
var p = new Parent(); // Outputs "Grand!" "Parent!"
var c = new Child(); // Error: Endless Loop!
я ожидал бы консоль для входа "Гранд!", "Родитель!", "Ребенок!" когда создается экземпляр нового Child(), но вместо этого я получаю бесконечный цикл.
Я исхожу из фона ActionScript, поэтому создание классов в JavaScript по-прежнему бросает мне несколько кривых шаров. Спасибо за помощь в продвижении!
Там нет действительно понятие класса и подкласса JavaScript (кроме синтаксиса сахара в ES6). JavaScript - это прототип базы. – GibboK