Статический метод Reflect.apply() вызывает переданную ему функцию с указанными аргументами.

Синтаксис

Reflect.apply(target, thisArgument, argumentsList)

Параметры

target
Функция, которую необходимо вызвать.
thisArgument
Значение переменной this во время вызова функции target.
argumentsList
Объект, подобный массиву, содержащий аргументы, с которыми должна быть вызвана функция target.

Возвращаемое значение

Возвращается значение, которое вернёт функция target с указанным значением переменной this и аргументами.

Исключения

TypeError, если функция target не может быть вызвана.

Описание

В ES5, обычно используется метод Function.prototype.apply(), чтобы вызвать функцию с указанным значением переменной this и arguments, переданными как массив (или массивоподобный объект).

Function.prototype.apply.call(Math.floor, undefined, [1.75]);

С использованием Reflect.apply это действие становится более понятным и занимает меньше места в коде.

Примеры

Использование Reflect.apply()

Reflect.apply(Math.floor, undefined, [1.75]); 
// 1;

Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]);
// "hello"

Reflect.apply(RegExp.prototype.exec, /вы/, ['превысокомногорассмотрительствующий']).index;
// 4

Reflect.apply(''.charAt, 'пони', [3]);
// "и"

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

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Reflect.apply' в этой спецификации.
Стандарт Изначальное определение.
ECMAScript Latest Draft (ECMA-262)
Определение 'Reflect.apply' в этой спецификации.
Черновик  

Поддержка браузерами

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

Легенда

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

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

Метки документа и участники

Внесли вклад в эту страницу: HarmlessEvil
Обновлялась последний раз: HarmlessEvil,