handler.apply()

Метод handler.apply() является ловушкой для вызова функции.

Интерактивный пример

Синтаксис

const p = new Proxy(target, {
  apply: function(target, thisArg, argumentsList) {
  }
});

Параметры

Методу apply() передаются следующие параметры. this связан с объектом-обработчиком.

target

Исходный объект.

thisArg

Аргумент this для вызова.

argumentsList

Список аргументов для вызова.

Возврат значения

Метод apply() может возвращать значение.

Описание

Метод handler.apply() является ловушкой для вызова функции.

Перехват

Ловушка может перехватывать следующие операции:

Инварианты

Если следующие инварианты нарушены, то прокси выбросит TypeError.

Исходный объект target должен быть самовызываемым. То есть, это должна быть функция-объект.

Примеры

Ловушка для вызова функции

Следующий код ловит вызов функции.

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

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

Спецификации

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

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также