티스토리 뷰

반응형

자바스크립트에서 apply() 함수는 함수를 호출하면서 특정한 this 값과 인수들을 지정할 수 있는 메소드다.

apply() 함수는 함수를 호출하면서 함수의 this 값을 설정하고, 배열 또는 유사 배열 객체를 인수로 전달하여 함수를 실행한다.


기본 문법

apply() 함수는 아래와 같은 문법을 가진다.

function.apply(thisArg, [argsArray])
  • function : 호출될 함수를 나타내는 함수 객체이다.
  • thisArg : 함수 내에서 사용될 this 값으로 설정될 객체이다. this는 기본적으로전역객체의 window로 정해져 있다.
  • argsArray (선택적) : 함수에 전달할 인수들로 구성된 배열 또는 유사 배열 객체(리스트 등)이다.

예시 코드1

아래는 apply() 함수를 사용하는 예시다.

function greet(name, age) {
  console.log(`Hello, ${name}! You are ${age} years old.`);
}

const person = {
  name: 'John',
  age: 30,
};

greet.apply(person, ['Alice', 25]);
// 출력 결과 : Hello, Alice! You are 25 years old.

위 코드에서 apply() 함수를 사용하여 great 함수를 호출하고 있다. apply() 함수의 첫번째 인수로 person 객체를 전달하여 great 함수 내에서 this 값을 person 객체로 설정한다. 그 다음 두번째 인수로는 배열 ['Alice', 25]를 전달하여 great 함수의 인수로 사용하고 있다.

 

apply() 함수를 사용함으로써 great 함수 내에서 this 값으로 person 객체를 사용할 수 있다. 결과적으로 console.log()는 "Hello, Alice! You are 25 years old."가 출력된다.

 

apply() 함수는 주로 함수 호출 시 this 값을 설정하는 용도로 사용된다. 특히 객체의 메소드 내에서 다른 객체의 메소드를 호출하거나, 함수 내부에서 this를 참조해야 하는 경우에 유용하다.


 

예시 코드2

다음은 주어진 배열에서 Math.max를 사용하여 최대값을 구하는 방법이다. apply() 함수는 함수를 호출할 때, 인수로 배열을 전달할 수 있다.이를 활용해서 배열을 Math.max 함수에 전달해 최대값을 구할 수 있다.

const arr = [3, 1, 5, 2, 4];
const max = Math.max.apply(null, arr);
console.log(max); // 출력 결과: 5

위 코드에서 Math.max.apply(null, arr)는 Math.max 함수를 호출하면서 apply 함수를 사용하여 arr 배열의 요소를 인수로 전달하고 있다. apply() 함수의 첫번째 인수는 this 값으로 사용될 객체를 지정하는데, 위 코드에선 사용할 전역 객체가 없으므로 null을 사용했다. 두번째 인수로는 배열인 arr을 전달하여 Math.max 함수가 배열의 요소 중 가장 큰 값을 반환하게 된다.

 

반응형
댓글
공지사항