Pokornie proszę o zlitowanie.

Jestem trochę pod łamany wiem że to proste ale jakoś nie rozumiem.
Mam nadzieje że dobrze wkleiłem kod JS
[JAVASCRIPT] pobierz, plaintext
  1. function Figura() {}
  2. Figura.prototype.nazwa = 'figura';
  3. Figura.prototype.toString = function() {
  4. var wynik = [];
  5. if (this.constructor.uber) {
  6. wynik[wynik.length] = this.constructor.uber.toString();
  7. }
  8. wynik[wynik.length] = this.nazwa;
  9. return wynik.join(', ');
  10. };
  11.  
  12. function Figura2D(){}
  13. F.prototype = Figura.prototype;
  14. Figura2D.prototype = new F();
  15. Figura2D.prototype.constructor = Figura2D;
  16. Figura2D.prototype.nazwa = 'figura 2D';
  17. Figura2D.uber = Figura.prototype;
  18. function Trójkąt(bok, wysokość) {
  19. this.bok = bok;
  20. this.wysokość = wysokość;
  21. }
  22. F.prototype = Figura2D.prototype;
  23. Trójkąt.prototype = new F();
  24. Trójkąt.prototype.constructor = Trójkąt;
  25. Trójkąt.uber = Figura2D.prototype;
  26. Trójkąt.prototype.nazwa = 'Trójkąt';
  27. Trójkąt.prototype.getArea = function(){return this.bok * this.wysokość / 2;};
  28. var my = new Trójkąt(20,3);
  29. my.toString();
[JAVASCRIPT] pobierz, plaintext


Dziękuje za okazane zainteresowanie.
nie rozumiem jak działa ta super klasa uber.
mamy tak
w aktualnyElement.constructor.uber pojawia mi się prototyp ojca, ok to rozumiem (...?) proste.
zaś jeśli aktualnyElement.constructor.uber.toString wyskakuje mi także inne 'pra' prototypy.

Proszę o udzielenie wskazówek na jakiej zasadzie działa toString i o co chodzi w tych super clasach w JS.
Ewentualnie odsyłacz do najlepiej polskiego 'tutorialu'.