>웹 프론트엔드 >JS 튜토리얼 >JavaScript `apply()` 대 `call()`: 언제 어느 것을 사용해야 합니까?

JavaScript `apply()` 대 `call()`: 언제 어느 것을 사용해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 19:07:14890검색

JavaScript `apply()` vs. `call()`: When Should I Use Which?

JavaScript의 호출 메서드: apply()와 call() 비교

JavaScript에서 함수를 호출할 때 두 가지 기본 메서드가 있습니다. 귀하의 처분: apply() 및 call(). 둘 다 지정된 this 값을 사용하여 함수를 실행할 수 있지만 인수가 전달되는 방식이 다릅니다.

apply(thisValue,argArray)

  • 구조 제공된 인수Array의 배열.
  • 지정된 thisValue와 배열 요소를 개별적으로 사용하여 함수를 호출합니다. 인수.
  • 예:
const func = function() {
    console.log("Hello world!");
};
func.apply(null, ["John", 35]); // Invokes "Hello world!" and logs "John" and 35.

call(thisValue, arg1, arg2, ...argN)

  • 인수를 개별적으로 처리합니다. 매개변수.
  • 지정된 thisValue와 별도로 제공되는 인수를 사용하여 함수를 호출합니다. 값.
  • 예:
func.call(null, "John", 35); // Invokes "Hello world!" and logs "John" and 35.

니모닉:

  • 적용: A 배열의 경우 인수.
  • 호출: 쉼표로 구분된 인수의 경우 C

성능 차이:

  • 일반적으로 apply()와 사이에는 무시할 만한 성능 차이가 있습니다. call().
  • 그러나 많은 수의 인수를 처리할 때는 apply()가 약간 더 빠를 수 있습니다.

최적 사용 사례:

  • apply() 사용: 전달하려는 인수 배열이 있는 경우 특히 인수 개수를 미리 알 수 없는 경우 함수.
  • call() 사용: 개별 인수를 함수에 전달하고 순서를 더 효과적으로 제어하려는 경우.

ES6 추가:

  • In ES6에서는 call()과 함께 스프레드 연산자를 사용하여 배열을 개별 인수로 분산시킬 수 있습니다.
  • 예:
func.call(null, ...["John", 35]); // Same as func.apply(null, ["John", 35]).

위 내용은 JavaScript `apply()` 대 `call()`: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.