pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function/toString

ref="https://developer.mozilla.org/favicon.ico" />

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Function.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 Juli 2015.

* Some parts of this feature may have varying levels of support.

Die toString()-Methode von Function-Instanzen gibt einen String zurück, der den Quellcode dieser Funktion repräsentiert.

Probieren Sie es aus

function sum(a, b) {
  return a + b;
}

console.log(sum.toString());
// Expected output: "function sum(a, b) {
//                     return a + b;
//                   }"

console.log(Math.abs.toString());
// Expected output: "function abs() { [native code] }"

Syntax

js
toString()

Parameter

Keine.

Rückgabewert

Ein String, der den Quellcode der Funktion repräsentiert.

Beschreibung

Das Function-Objekt überschreibt die toString()-Methode, die von Object geerbt wurde; es erbt nicht Object.prototype.toString. Bei benutzerdefinierten Function-Objekten gibt die toString-Methode einen String zurück, der das Quelltextsegment enthält, das zur Definition der Funktion verwendet wurde.

JavaScript ruft die toString-Methode automatisch auf, wenn ein Function-Objekt als Textwert dargestellt werden soll, z. B. wenn eine Funktion mit einem String verkettet wird.

Die toString()-Methode wirft eine TypeError-Ausnahme ("Function.prototype.toString called on incompatible object"), wenn das this-Wertobjekt kein Function-Objekt ist.

js
Function.prototype.toString.call("foo"); // throws TypeError

Wenn die toString()-Methode auf eingebauten Funktionsobjekten, einer durch Function.prototype.bind() erstellten Funktion oder anderen Nicht-JavaScript-Funktionen aufgerufen wird, gibt toString() einen native function string zurück, der aussieht wie

function someName() { [native code] }

Bei intrinsischen Objektsmethoden und Funktionen ist someName der anfängliche Name der Funktion; andernfalls kann der Inhalt implementierungsabhängig sein, wird jedoch immer in der Eigenschaftennamenssyntax sein, wie [1 + 1], someName oder 1.

Hinweis: Das bedeutet, dass die Verwendung von eval() auf nativen Funktionsstrings garantiert einen Syntaxfehler darstellt.

Wenn die toString()-Methode auf eine durch den Function-Konstruktor erstellte Funktion aufgerufen wird, gibt toString() den Quellcode einer synthetisierten Funktionsdeklaration namens "anonymous" zurück, wobei die bereitgestellten Parameter und Funktionskörper verwendet werden. Zum Beispiel wird Function("a", "b", "return a + b").toString() folgendes zurückgeben:

function anonymous(a,b
) {
return a + b
}

Seit ES2018 verlangt die Spezifikation, dass der Rückgabewert von toString() genau derselbe Quellcode ist, wie er deklariert wurde, einschließlich aller Leerzeichen und/oder Kommentare — oder, falls der Host den Quellcode aus irgendeinem Grund nicht verfügbar hat, muss ein nativer Funktionsstring zurückgegeben werden. Unterstützung für dieses überarbeitete Verhalten finden Sie in der Kompatibilitätstabelle.

Beispiele

Vergleich von tatsächlichem Quellcode und toString-Ergebnissen

js
function test(fn) {
  console.log(fn.toString());
}

function f() {}
class A {
  a() {}
}
function* g() {}

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

Beachten Sie, dass nach der Überarbeitung von Function.prototype.toString() bei einem Aufruf von toString() Implementierungen nie erlaubt sind, einen Funktionsquelltext zu synthetisieren, der kein nativer Funktionsstring ist. Die Methode gibt immer den exakten Quellcode zurück, der zur Erstellung der Funktion verwendet wurde — einschließlich der obigen getter- und setter-Beispiele. Der Function-Konstruktor selbst hat die Fähigkeit, den Quellcode für die Funktion zu synthetisieren (und ist daher eine Form von implizitem eval()).

Erhalten des Quelltexts einer Funktion

Es ist möglich, den Quelltext einer Funktion zu erhalten, indem man sie in einen String umwandelt — zum Beispiel, indem man sie in eine Template-Literal einfügt:

js
function foo() {
  return "bar";
}
console.log(`${foo}`);
// function foo() {
//   return "bar";
// }

Dieser Quelltext ist exakt, einschließlich aller eingefügten Kommentare (die ansonsten nicht von der internen Darstellung der Engine gespeichert werden).

js
function foo /* a comment */() {
  return "bar";
}
console.log(foo.toString());
// function foo /* a comment */() {
//   return "bar";
// }

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-function.prototype.tostring

Browser-Kompatibilität

Siehe auch

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy