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

Function.prototype.arguments - 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.prototype.arguments

Deprecated

Avoid using this feature in new projects. JavaScript strict mode prohibits accessing the caller and arguments properties of a Function object. This feature may be a candidate for removal from web standards or browsers.

Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern untersttzt werden und sich in Zukunft ndern oder entfernt werden knnen. Unter Umstnden kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

Hinweis: Die arguments-Eigenschaft von Function-Objekten ist veraltet. Der empfohlene Weg, um auf das arguments-Objekt zuzugreifen, ist die Verwendung der innerhalb von Funktionen verfgbaren Variablen arguments.

Die arguments-Accessor-Eigenschaft von Function-Instanzen gibt die an diese Funktion bergebenen Argumente zurck. Fr strict-, Pfeil-, asynchrone und Generatorfunktionen wirft der Zugriff auf die arguments-Eigenschaft einen TypeError.

In diesem Artikel

Beschreibung

Der Wert von arguments ist ein array-hnliches Objekt, das den an eine Funktion bergebenen Argumenten entspricht.

Im Fall von Rekursion, d.h. wenn die Funktion f mehrmals im Aufrufstapel erscheint, reprsentiert der Wert von f.arguments die Argumente der zuletzt aufgerufenen Instanz der Funktion.

Der Wert der arguments-Eigenschaft ist normalerweise null, wenn kein aktueller Aufruf der Funktion im Gange ist (d.h. die Funktion wurde aufgerufen, aber noch nicht zurckgegeben).

Beachten Sie, dass das einzige Verhalten, das von der ECMAScript-Spezifikation festgelegt ist, darin besteht, dass Function.prototype einen initialen arguments-Accessor hat, der bedingungslos einen TypeError fr jeden get- oder set-Anfrage auslst (bekannt als "poison pill accessor"), und dass Implementierungen nicht erlaubt sind, diese Semantik fr irgendeine Funktion auer nicht-strikten einfachen Funktionen zu ndern. Das tatschliche Verhalten der arguments-Eigenschaft, falls es sich um etwas anderes als das Auslsen eines Fehlers handelt, ist implementationsabhngig. Beispielsweise definiert Chrome es als eine eigene Dateneigenschaft, whrend Firefox und Safari den initialen Function.prototype.arguments-Accessor mit Gift-Pille erweitern, um this-Werte speziell zu behandeln, die nicht-strikte Funktionen sind.

js
(function f() {
  if (Object.hasOwn(f, "arguments")) {
    console.log(
      "arguments is an own property with descriptor",
      Object.getOwnPropertyDescriptor(f, "arguments"),
    );
  } else {
    console.log(
      "f doesn't have an own property named arguments. Trying to get f.[[Prototype]].arguments",
    );
    console.log(
      Object.getOwnPropertyDescriptor(
        Object.getPrototypeOf(f),
        "arguments",
      ).get.call(f),
    );
  }
})();

// In Chrome:
// arguments is an own property with descriptor {value: Arguments(0), writable: false, enumerable: false, configurable: false}

// In Firefox:
// f doesn't have an own property named arguments. Trying to get f.[[Prototype]].arguments
// Arguments {  }

Beispiele

Verwendung der arguments-Eigenschaft

js
function f(n) {
  g(n - 1);
}

function g(n) {
  console.log(`before: ${g.arguments[0]}`);
  if (n > 0) {
    f(n);
  }
  console.log(`after: ${g.arguments[0]}`);
}

f(2);

console.log(`returned: ${g.arguments}`);

// Logs:
// before: 1
// before: 0
// after: 0
// after: 1
// returned: null

Spezifikationen

Nicht Teil eines Standards.

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page