Function.prototype.toString()
Try it
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
(en-US); sie erbt nicht von Object.prototype.toString
(en-US). 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 (ECMA-262) Die Definition von 'Function.prototype.toString' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser
Firefox spezifische Hinweise
- Seit Firefox 17, ist
Function.prototype.toString()
implementiert zum Speichern von Funktionsquelltexten. Der Decompiler wurde entfernt, so das derindentation
Parameter nicht mehr gebraucht wird. Für mehr Details siehe Bug 761723. - Seit Firefox 38, erzeugt
Function.prototype.toString()
einen Fehler fürProxy
Objekts (Bug 1100936).