Function
BaselineWidely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
DasFunction
-Objekt stellt Methoden fürFunktionen bereit. In JavaScript ist jede Funktion tatsächlich einFunction
-Objekt.
Konstruktor
Function()
Erstellt ein neues
Function
-Objekt. Der direkte Aufruf des Konstruktors kann Funktionen dynamisch erstellen, leidet jedoch unter Sicherheits- und ähnlichen (aber weit weniger signifikanten) Leistungsproblemen wieeval()
. Im Gegensatz zueval()
erstellt derFunction
-Konstruktor jedoch Funktionen, die nur im globalen Geltungsbereich ausgeführt werden.
Instanz-Eigenschaften
Diese Eigenschaften sind aufFunction.prototype
definiert und werden von allenFunction
-Instanzen geteilt.
Function.prototype.arguments
VeraltetNicht standardisiertRepräsentiert die an diese Funktion übergebenen Argumente. Beistrict, Pfeil-, asynchronen und Generator-Funktionen löst der Zugriff auf die
arguments
-Eigenschaft einenTypeError
aus. Verwenden Sie stattdessen dasarguments
-Objekt innerhalb von Funktionsabschlüssen.Function.prototype.caller
VeraltetNicht standardisiertRepräsentiert die Funktion, die diese Funktion aufgerufen hat. Beistrict, Pfeil-, asynchronen und Generator-Funktionen löst der Zugriff auf die
caller
-Eigenschaft einenTypeError
aus.Function.prototype.constructor
Die Konstrukturfunktion, die das Instanzobjekt erstellt hat. Bei
Function
-Instanzen ist der Anfangswert derFunction
-Konstruktor.
Diese Eigenschaften sind eigene Eigenschaften jederFunction
-Instanz.
displayName
Nicht standardisiertOptionalDer Anzeigename der Funktion.
length
Gibt die Anzahl der von der Funktion erwarteten Argumente an.
name
Der Name der Funktion.
prototype
Wird verwendet, wenn die Funktion als Konstruktor mit dem
new
-Operator verwendet wird. Es wird das neue Prototypobjekt des Objekts.
Instanzmethoden
Function.prototype.apply()
Ruft eine Funktion mit einem gegebenen
this
-Wert und optionalen Argumenten auf, die als Array (oder einArray-ähnliches Objekt) bereitgestellt werden.Function.prototype.bind()
Erstellt eine neue Funktion, die, wenn sie aufgerufen wird, ihr
this
-Schlüsselwort auf einen bereitgestellten Wert gesetzt hat, optional mit einer bestimmten Sequenz von Argumenten, die den beim Aufruf der neuen Funktion bereitgestellten Argumenten vorangestellt werden.Function.prototype.call()
Ruft eine Funktion mit einem gegebenen
this
-Wert und optionalen Argumenten auf.Function.prototype.toString()
Gibt einen String zurück, der den Quellcode der Funktion darstellt. Überschreibt die
Object.prototype.toString
Methode.Function.prototype[Symbol.hasInstance]()
Gibt das Standardverfahren an, um zu bestimmen, ob eine Konstrukturfunktion ein Objekt als eine ihrer Instanzen erkennt. Wird vom
instanceof
-Operator aufgerufen.
Beispiele
Unterschied zwischen Function-Konstruktor und Funktionsdeklaration
Funktionen, die mit demFunction
-Konstruktor erstellt wurden, erstellen keine Closures zu ihren Erstellungskontexten; sie werden immer im globalen Geltungsbereich erstellt. Beim Ausführen können sie nur auf ihre eigenen lokalen Variablen und globale Variablen zugreifen, nicht auf die Variablen aus dem Geltungsbereich, in dem derFunction
-Konstruktor erstellt wurde. Dies unterscheidet sich von der Verwendung voneval()
mit Code für einen Funktionsausdruck.
// Create a global property with `var`var x = 10;function createFunction1() { const x = 20; return new Function("return x;"); // this `x` refers to global `x`}function createFunction2() { const x = 20; function f() { return x; // this `x` refers to the local `x` above } return f;}const f1 = createFunction1();console.log(f1()); // 10const f2 = createFunction2();console.log(f2()); // 20
Während dieser Code in Webbrowsern funktioniert, wirdf1()
in Node.js einenReferenceError
erzeugen, dax
nicht gefunden wird. Dies liegt daran, dass der oberste Bereich in Node nicht der globale Bereich ist undx
lokal für das Modul sein wird.
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-function-objects |
Browser-Kompatibilität
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.