Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Symbol.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
DietoString()-Methode vonSymbol-Werten gibt einen String zurück, der diesen Symbolwert repräsentiert.
In diesem Artikel
Probieren Sie es aus
console.log(Symbol("desc").toString());// Expected output: "Symbol(desc)"console.log(Symbol.iterator.toString());// Expected output: "Symbol(Symbol.iterator)console.log(Symbol.for("foo").toString());// Expected output: "Symbol(foo)"// console.log(Symbol('foo') + 'bar');// Expected output: Error: Can't convert symbol to stringSyntax
toString()Parameter
Keine.
Rückgabewert
Ein String, der den angegebenen Symbolwert repräsentiert.
Beschreibung
DasSymbol-Objekt überschreibt dietoString-Methode vonObject; es erbt nicht vonObject.prototype.toString(). FürSymbol-Werte gibt dietoString-Methode einen beschreibenden String in der Form"Symbol(description)" zurück, wobeidescription dieBeschreibung des Symbols ist.
DietoString()-Methode erfordert, dass ihrthis-Wert einSymbol-Primitiv oder Wrapper-Objekt ist. Sie löst einenTypeError für anderethis-Werte aus, ohne zu versuchen, sie in Symbolwerte umzuwandeln.
DaSymbol eine[Symbol.toPrimitive]()-Methode hat, hat diese Methode immer Vorrang vortoString(), wenn einSymbol-Objektin einen String umgewandelt wird. Da jedochSymbol.prototype[Symbol.toPrimitive]() ein Symbol-Primitiv zurückgibt und Symbol-Primitiven einenTypeError auslösen, wenn sie implizit in einen String konvertiert werden, wird dietoString()-Methode vom Sprachmodus nie implizit aufgerufen. Um ein Symbol in einen String umzuwandeln, müssen Sie entweder explizit seinetoString()-Methode aufrufen oder dieString()-Funktion verwenden.
Beispiele
>Verwendung von toString()
Symbol("desc").toString(); // "Symbol(desc)"// well-known symbolsSymbol.iterator.toString(); // "Symbol(Symbol.iterator)"// global symbolsSymbol.for("foo").toString(); // "Symbol(foo)"Impliziter Aufruf von toString()
Die einzige Möglichkeit, um JavaScript dazu zu bringen,toString() statt[Symbol.toPrimitive]() auf einem Symbol-Wrapper-Objekt implizit aufzurufen, besteht darin, die[Symbol.toPrimitive]()-Methode zuerst zulöschen.
Warnung:Sie sollten dies in der Praxis nicht tun. Verändern Sie niemals eingebaute Objekte, es sei denn, Sie wissen genau, was Sie tun.
delete Symbol.prototype[Symbol.toPrimitive];console.log(`${Object(Symbol("foo"))}`); // "Symbol(foo)"Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.prototype.tostring> |