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