handler.apply()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die Methode handler.apply() ist eine Trap für die [[Call]] interne Methode eines Objekts, die bei Operationen wie Funktionsaufrufen verwendet wird.

Probieren Sie es aus

Syntax

js
new Proxy(target, {
  apply(target, thisArg, argumentsList) {
  }
})

Parameter

Die folgenden Parameter werden an die Methode apply() übergeben. this ist an den Handler gebunden.

target

Das Ziel-Callable-Objekt.

thisArg

Das this-Argument für den Aufruf.

argumentsList

Ein Array, das die an die Funktion übergebenen Argumente enthält.

Rückgabewert

Die Methode apply() kann jeden Wert zurückgeben, der den Rückgabewert des Funktionsaufrufs darstellt.

Beschreibung

Abfangvorgänge

Diese Trap kann folgende Operationen abfangen:

Oder jede andere Operation, die die [[Call]] interne Methode aufruft.

Invarianten

Die [[Call]] interne Methode des Proxys wirft einen TypeError, wenn die Definition des Handlers gegen eine der folgenden Invarianten verstößt:

  • Das target muss selbst ein aufrufbares Objekt sein. Das heißt, es muss ein Funktionsobjekt sein.

Beispiele

Abfangen eines Funktionsaufrufs

Der folgende Code fängt einen Funktionsaufruf ab.

js
const p = new Proxy(function () {}, {
  apply(target, thisArg, argumentsList) {
    console.log(`called: ${argumentsList}`);
    return argumentsList[0] + argumentsList[1] + argumentsList[2];
  },
});

console.log(p(1, 2, 3)); // "called: 1,2,3"
// 6

Spezifikationen

Specification
ECMAScript Language Specification
# sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch