[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function [Back]  [Original]

Function - JavaScript | MDN

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

Baseline Weitgehend verfgbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

* Einige Teile dieser Funktion werden mglicherweise unterschiedlich gut untersttzt.

Das Function-Objekt stellt Methoden fr Funktionen bereit. In JavaScript ist jede Funktion tatschlich ein Function-Objekt.

In diesem Artikel

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 wie eval(). Im Gegensatz zu eval() erstellt der Function-Konstruktor jedoch Funktionen, die nur im globalen Geltungsbereich ausgefhrt werden.

Instanz-Eigenschaften

Diese Eigenschaften sind auf Function.prototype definiert und werden von allen Function-Instanzen geteilt.

Function.prototype.arguments

Reprsentiert die an diese Funktion bergebenen Argumente. Bei strict, Pfeil-, asynchronen und Generator-Funktionen lst der Zugriff auf die arguments-Eigenschaft einen TypeError aus. Verwenden Sie stattdessen das arguments-Objekt innerhalb von Funktionsabschlssen.

Function.prototype.caller

Reprsentiert die Funktion, die diese Funktion aufgerufen hat. Bei strict, Pfeil-, asynchronen und Generator-Funktionen lst der Zugriff auf die caller-Eigenschaft einen TypeError aus.

Function.prototype.constructor

Die Konstrukturfunktion, die das Instanzobjekt erstellt hat. Bei Function-Instanzen ist der Anfangswert der Function-Konstruktor.

Diese Eigenschaften sind eigene Eigenschaften jeder Function-Instanz.

displayName Optional

Der 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 ein Array-hnliches Objekt) bereitgestellt werden.

Function.prototype.bind()

Erstellt eine neue Funktion, die, wenn sie aufgerufen wird, ihr this-Schlsselwort 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 zurck, 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 dem Function-Konstruktor erstellt wurden, erstellen keine Closures zu ihren Erstellungskontexten; sie werden immer im globalen Geltungsbereich erstellt. Beim Ausfhren knnen sie nur auf ihre eigenen lokalen Variablen und globale Variablen zugreifen, nicht auf die Variablen aus dem Geltungsbereich, in dem der Function-Konstruktor erstellt wurde. Dies unterscheidet sich von der Verwendung von eval() mit Code fr einen Funktionsausdruck.

js
// 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()); // 10
const f2 = createFunction2();
console.log(f2()); // 20

Whrend dieser Code in Webbrowsern funktioniert, wird f1() in Node.js einen ReferenceError erzeugen, da x nicht gefunden wird. Dies liegt daran, dass der oberste Bereich in Node nicht der globale Bereich ist und x lokal fr das Modul sein wird.

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-function-objects

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page