JavaScript/Objekte/Map/toStringTag

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

Der Wert der Eigenschaft mit dem Symbol @@toStringTag als Schlüssel ist der String, der standardmäßig zur Beschreibung von Maps verwendet wird. Das heißt, wann immer eine Map in einen Kontext gebracht wird, in dem ein String und kein Objekt erwartet wird, und entsprechend intern eine Typumwandlung durchgeführt wird, dann wird der in dieser Eigenschaft hinterlegte String für die Repräsentation der Map verwendet.


Syntax

Map.prototype[Symbol.toStringTag]


Attribute
Writable false
Enumerable false
Configurable true


Beschreibung[Bearbeiten]

In Situationen, in denen ein Wert von einem bestimmten Datentyp erwartet wird, der vorliegende Wert jedoch von einem anderen Datentyp ist, wird automatisch eine Typumwandlung durchgeführt. Handelt es sich in einem solchen Fall bei dem benötigten Datentyp um einen String und bei dem gegebenen Wert um ein Objekt, dann wird standardmäßig auf diesem Objekt die Methode toString aufgerufen, um es in eine Zeichenkette zu konvertieren.


Beispiel
const object = { };

console.log(object.toString( )); // [object Object]


Einige Objekttypen, wie zum Beispiel Arrays, besitzen eine eigene Methode toString, die eine an den jeweiligen Typ angepasste Stringrepräsentation des Objektes zurückgibt. Bei Objekten die nicht über eine solche spezifische Methode verfügen, zu denen auch Maps zählen, ebenso wie bei Objekten vom allgemeinen Typ Object, wird hingegen die Methode toString aufgerufen, die auf dem prototypischen Objekt des eingebauten Konstruktors Object definiert ist.


Beispiel
const map = new Map;

console.log(map[Symbol.toStringTag]); // Map

console.log(map.toString( )); // [object Map]


Die Methode toString von Object.prototype gibt immer einen String zurück, der, wie in den Beispielen oben zu sehen ist, in eckige Klammern gefasst das Wort object und ein sogenanntes Type Tag enthält, das den Namen des jeweiligen Objekttyps enthält. Bei Maps wird dieses Tag über die Eigenschaft @@toStringTag bereitgestellt, deren Wert die Zeichenkette Map ist. Diese Eigenschaft wird intern von der Methode toString gelesen und der dort hinterlegte String in die zurückgegebene Zeichenkette eingebaut.

Spezifikation[Bearbeiten]

ECMAScript 2016: Map.prototype[@@toStringTag]