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 должен быть самовызываемым. То есть, это должна быть функция-объект.

Примеры

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

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

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

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

Спецификация
ECMAScript (ECMA-262)
Определение '[[Call]]' в этой спецификации.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
applyChrome Полная поддержка 49Edge Полная поддержка 12Firefox Полная поддержка 18IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 10WebView Android Полная поддержка 49Chrome Android Полная поддержка 49Firefox Android Полная поддержка 18Opera Android Полная поддержка 36Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

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