Имеется своя реализация системы создания и наследования "классов".
Имеется возможность наследования в виде:
childClass.prototype = Object.create( parentClass.prototype );
childClass.prototype.constructor = childClass;
// Копируем методы родителя с добавлением префикса, или в спец. список
// Прописываем сверху методы наследника
childClass.prototype.parent = parentClass;
childClass.prototype.parentMethodList = parentMethodList;
childClass.prototype.childMethodList = childMethodList;
childClass.prototype.inheritedMethodList = inheritedMethodList;
Реализовываю наследование: Class1 -> Class2 -> Class3.
При инициализации
Class3 произвожу инициализацию
Class2, а тот в свою очередь
Class1.
...
constructor: function()
{
...
this.parent();
...
}
Но проблема в том, что в момент инициализации
Class2, область видимости this остаётся на
Class3, потому последующий вызов this.parent вызываем опять инициализацию
Class2 вместо
Class1 (выходит просто постоянная инициализация Class2 в рекурсии).
Пытался реализовать что-то вида:
childClass.prototype.parent = function( ) { new parentClass.apply( parentClass, arguments ); };
Но это всё не то.
Как выйти из данной ситуации?
Спасибо.
Листинг версии которую ковыряю:
pastebin.com/iirPtLUJ