Content-Length: 192533 | pFad | http://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply

handler.apply() - JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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 сентябрь 2016 г..

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

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

function sum(a, b) {
  return a + b;
}

const handler = {
  apply: function (target, thisArg, argumentsList) {
    console.log(`Calculate sum: ${argumentsList}`);
    // Expected output: "Calculate sum: 1,2"

    return target(argumentsList[0], argumentsList[1]) * 10;
  },
};

const proxy1 = new Proxy(sum, handler);

console.log(sum(1, 2));
// Expected output: 3
console.log(proxy1(1, 2));
// Expected output: 30

Синтаксис

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® 2026 Language Specification
# sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist

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

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









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy