JavaScript/Objekte/Map/constructor
Die Eigenschaft constructor
hält eine Referenz auf den Konstruktor Map.
Syntax
Map.prototype.constructor
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.
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.
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
- ECMAScript 2016: Map.prototype.constructor