call 메서드
call 메서드는 주어진 컨텍스트로 함수를
호출할 수 있게 해줍니다. 메서드의 첫 번째 매개변수로는
함수의 컨텍스트를 지정하고, 나머지 매개변수들은 함수의
매개변수로 전달합니다.
문법
함수.call(컨텍스트, 매개변수1, 매개변수2...);
예제
다음과 같은 입력 필드가 있다고 가정해 봅시다:
<input id="elem" value="text">
또한 세 개의 매개변수를 받는 함수가 주어졌다고 가정합니다:
function func(param1, param2, param3) {
console.log(this.value + param1 + param2 + param3);
}
call 메서드를 사용하여 함수 내부의 this가
입력 필드를 가리키도록 하고, 동시에 1,
2, 3를 매개변수로 전달하여 함수를 호출해 봅시다:
let elem = document.querySelector('#elem');
func.call(elem, 1, 2, 3);
예제
매개변수를 받지 않는 함수가 있다고 가정합니다:
function func() {
console.log(this.value);
}
이 경우, call을 통해 이 함수를 호출할 때는
컨텍스트만 있는 첫 번째 매개변수만 전달하면 충분합니다:
let elem = document.querySelector('#elem');
func.call(elem);