Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript apply() 메서드란 무엇인가? 개념부터 예제까지 쉽게 이해하기

JavaScript의 apply() 메서드는 call() 메서드와 거의 동일하게 작동합니다. 두 메서드 모두 함수를 호출할 때 this 값을 지정할 수 있다는 점이 같습니다.

가장 큰 차이점은 매개변수를 전달하는 방식입니다. call() 메서드는 인수를 하나씩 나열해서 전달하는 반면, apply() 메서드는 함수의 매개변수를 배열 형태로 전달받습니다.

apply() 메서드 기본 문법

func.apply(thisArg, [argsArray])
  • thisArg: 함수 내부에서 this로 참조될 객체
  • argsArray: 함수에 전달할 인수들을 담은 배열 또는 유사 배열 객체

예제 코드

다음 코드를 직접 실행하면서 apply() 메서드의 구현 방법을 확인해 보세요. 배열에 담긴 여러 숫자 중 최댓값을 구하는 예제입니다.

<html>
   <head>
      <script>
         document.write("배열 목록에서 가장 큰 숫자: ");
         document.write(Math.max.apply(null, [50, 90, 18, 87]));
      </script>
   </head>

   <body>
   </body>
</html>

실행 결과

배열 목록에서 가장 큰 숫자: 90

코드 설명

위 예제에서 Math.max.apply(null, [50, 90, 18, 87])는 배열의 요소들을 마치 Math.max(50, 90, 18, 87)처럼 개별 인수로 펼쳐서 전달합니다. 그 결과 네 개의 숫자 중 가장 큰 값인 90이 출력됩니다.

이처럼 apply() 메서드는 배열 데이터를 개별 인수로 변환하여 함수에 전달해야 할 때 매우 유용하게 활용됩니다. 특히 Math.min(), Math.max()처럼 여러 개의 인수를 받는 함수와 함께 자주 사용됩니다.