We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Die toString() Methode gibt eine Stringrepräsentation des Quelltextes einer Funktion zurück.

Syntax

function.toString()

Rückgabewert

Eine Stringrepräsentation des Quelltextes der Funktion.

Beschreibung

Das Function Objekt überschreibt die von Object geerbte Methode toString; sie erbt nicht von Object.prototype.toString. Für benutzerdefinierte Function Objekte gibt die toString Methode einen String zurück, welcher den Quelltext, der die Funktion definiert, enthält.

JavaScript ruft die toString Methode automatisch auf, wenn einen Function als Text repräsentiert werden muss, z. B. wenn eine Funktion mit einem String konkateniert wird.

Die toString() Methode erzeugt eine TypeError Fehler("Function.prototype.toString called on incompatible object"), wenn das Objekt von this Objekt kein Function Objekt ist. Dieser wird auch bei einem Proxy Objekte erzeugt, zum Beispiel:

Function.prototype.toString.call('foo'); // TypeError

var proxy = new Proxy(function() {}, {});
Function.prototype.toString.call(proxy); // TypeError

Wenn die toString() Methode auf eingebauten Objekten oder einer von Function.prototype.bind erstellten Methode aufgerufen wird, gibt toString() native function string zurück, was wie folgt aussiet:

"function () {\n    [native code]\n}"

Wenn die toString() Methode auf einer Funktion aufgerufen wird, die mit dem Function Konstruktor erstellt wurde, gibt diese den Quelltext der syntetischen Funktionsdeklerations mit dem Namen "anonymous" zurück, welche die Parameter und den Funktionrumpf enthält.

Beispiele

Funktion Ergebnis von Function.prototype.toString
function f(){}
"function f(){}"
class A { a(){} }
"class A { a(){} }"
function* g(){}
"function* g(){}"
a => a
"a => a"
({ a(){} }.a)
"a(){}"
({ *a(){} }.a)
"*a(){}"
({ [0](){} }[0])
"[0](){}"
Object.getOwnPropertyDescriptor({
    get a(){}
}, "a").get
"get a(){}"
Object.getOwnPropertyDescriptor({
    set a(x){}
}, "a").set
"set a(x){}"
Function.prototype.toString
"function toString() { [native code] }"
(function f(){}.bind(0))
"function () { [native code] }"
Function("a", "b")
"function anonymous(a\n) {\nb\n}"

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 1st Edition (ECMA-262) Standard Initiale Definition. Implementiert in JavaScript 1.1.
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Function.prototype.toString' in dieser Spezifikation.
Standard Spezifischere Anforderungen wurden an die Stringrepräsentation hinzugefügt.
Function.prototype.toString revision Draft Standardisierung nativer Funktionsstrings am Zeilenende.
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'Function.prototype.toString' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung Ja Ja1 Ja Ja Ja
Support of toString revision Nein Nein54 Nein Nein Nein
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung Ja Ja Ja4 Ja Ja Ja
Support of toString revision Nein Nein Nein54 Nein Nein Nein

Firefox spezifische Hinweise

  • Seit Firefox 17, ist Function.prototype.toString() implementiert zum Speichern von Funktionsquelltexten. Der Decompiler wurde entfernt, so das der indentation Parameter nicht mehr gebraucht wird. Für mehr Details siehe Bug 761723.
  • Seit Firefox 38, erzeugt Function.prototype.toString() einen Fehler für Proxy Objekts (Bug 1100936).

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123
Zuletzt aktualisiert von: schlagi123,