Reflect.apply()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Reflect.apply() 정적 메서드는 대상 함수를 주어진 매개변수로 호출합니다.

시도해보기

구문

js
Reflect.apply(target, thisArgument, argumentsList);

매개변수

target

호출할 대상 함수.

thisArgument

호출에서 targetthis로 사용할 값.

argumentsList

target을 호출할 때 매개변수로 전달할 배열형 객체.

반환 값

주어진 this 값과 매개변수로 대상 함수를 호출한 결과.

예외

target이 호출 가능한 객체가 아니면 TypeError.

설명

ES5에서는 Function.prototype.apply() 메서드를 사용해, 함수를 호출할 때 this 값을 지정하거나 매개변수를 배열(또는 배열형 객체)에서 넘겨줄 수 있었습니다.

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

Reflect.apply() 메서드를 사용해 같은 작업을 더 쉽고 유려하게 수행할 수 있습니다.

예제

Reflect.apply() 사용하기

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

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

Reflect.apply(RegExp.prototype.exec, /ab/, ["confabulation"]).index;
// 4

Reflect.apply("".charAt, "ponies", [3]);
// "i"

명세

Specification
ECMAScript Language Specification
# sec-reflect.apply

브라우저 호환성

BCD tables only load in the browser

같이 보기