Javascript: Как да извлека името на конструктора от инстанция на клас при псевдо класическа конструкция
Бандата,
Имам нужда от помощ - трябва ми да намеря името на конструктора, който е създал дадена инстанция на обект. Намираме се в ситуация на javascript класическо ООП:
function Container(heading, width,heigth,startPoint,arrayOfChildren) {
this._heading = heading;
this._width = width;
this._heigth = heigth;
this._startPoint = startPoint;
this._arrayOfChildren = arrayOfChildren;
if (typeof this._arrayOfChildren === 'undefined') {
this._arrayOfChildren = [];
}
}
var a=new Container(heading, width,heigth,startPoint,arrayOfChildren)
как да намеря променливата a с какъв конструктор е създадена? constructor.name не става - дава ми резултат object. Пробвах и с тази функция, но и тя върна object:
Object.prototype.getClassName = function() {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
Може би, ако конструкторите, които очаквам като краен резултат са краен брой, мога да си свърша работа с instanceof и switch-case. Но какво може да се направи, ако очакваните отговори не са краен брой?
Моля помогнете
Не - ще при инстанциране на container, който е parent class ми връща Object:
https://github.com/nikolaydimov83/Advanced-Javascript/tree/master/04Homework
Като извикам инстанция пак ми връща object. Да не е заради екстенд функцията на object