Reflect.apply()
Статический метод 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 |
---|
ECMAScript Language Specification # sec-reflect.apply |
Поддержка браузерами
BCD tables only load in the browser