JavaScript/Objekte/Map/constructor

Aus SELFHTML-Wiki
< JavaScript‎ | Objekte‎ | Map
Wechseln zu: Navigation, Suche

Die Eigenschaft constructor hält eine Referenz auf den Konstruktor Map.


Syntax

Map.prototype.constructor


Attribute
Writable true
Enumerable false
Configurable true


Beschreibung

Die auf dem prototypischen Objekt des Konstruktors Map definierte Eigenschaft constructor verweist auf den Konstruktor Map selbst. Da sie an alle Instanzen vererbt wird, kann Map auch über die Prototypenkette referenziert werden.


Beispiel
const map = new Map;

console.log(map.constructor.name); // Map


In diesem Beispiel wird zunächst durch den Aufruf des Konstruktors eine leere Map erzeugt. Da die Instanz selbst keine Eigenschaft namens constructor besitzt, wird beim folgenden Zugriff automatisch die Eigenschaft des Prototypen referenziert. Diese enthält wie gesehen eine Referenz auf den Konstruktor Map, sodass dessen Eigenschaft name hier gelesen und ihr Wert in die Konsole geschrieben wird.


Beispiel
class CustomMap extends Map {
  logType ( ) {
    console.log(this.constructor.name);
  }
}

new CustomMap( ).logType( ); // CustomMap


Weil die Eigenschaft constructor standardmäßig auf jedem Prototypenobjekt eines Konstruktors definiert wird, wird die Eigenschaft von Map.prototype bei einer von Map abgeleiteten Klasse innerhalb der Prototypenkette verschattet. Dem zur Folge verweist die Eigenschaft constructor in dem Beispiel oben nicht auf den Konstruktor Map, sondern auf den selbstdefinierten Konstruktor mit dem Namen CustomMap.

Spezifikation