> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 호출과 적용: 이러한 함수 호출 방법은 어떻게 다릅니까?

JavaScript의 호출과 적용: 이러한 함수 호출 방법은 어떻게 다릅니까?

Mary-Kate Olsen
풀어 주다: 2024-12-15 11:05:17
원래의
724명이 탐색했습니다.

Call vs. Apply in JavaScript: How Do These Function Invocation Methods Differ?

함수 호출 방법: 호출 대 적용

JavaScript에서 호출 및 적용 방법을 사용하면 사용자 정의 컨텍스트 및 인수로 함수를 호출할 수 있습니다. . 두 방법 모두 동일한 목적을 수행하지만 인수 전달을 처리하는 방법이 다릅니다.

호출 및 적용: 인수 처리

주요 차이점은 인수 전달 방식에 있습니다. 함수에 제공됩니다:

  • call: 각 인수가 전달됩니다. 개별적으로.
  • 적용: 인수는 배열로 전달됩니다.

이 구별을 기억하기 위해 "배열은 A, 쉼표는 C"라는 니모닉을 사용할 수 있습니다. 유용합니다.

구문:

  • 전화:

    theFunction.call(valueForThis, arg1, arg2, ...)
    로그인 후 복사
  • 적용:

    theFunction.apply(valueForThis, arrayOfArgs)
    로그인 후 복사

예:

function theFunction(name, profession) {
  console.log("My name is " + name + " and I am a " + profession + ".");
}

theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");
로그인 후 복사

In 이 예에서 call 메소드는 쉼표로 구분된 인수와 함께 사용되는 반면, apply 메소드는 인수 배열을 사용합니다.

확산 연산자:

ES6 이상에서는 스프레드 연산자를 사용하여 배열을 인수로 전달할 수 있습니다. call 방법:

theFunction.call(undefined, ...["Matthew", "physicist"]);
로그인 후 복사

성능 및 사용 권장 사항:

call과 Apply 사이에는 큰 성능 차이가 없습니다. 사용할 방법의 선택은 특정 상황에 따라 다릅니다.

  • 인수가 이미 배열에 있는 경우 apply를 사용하면 코드를 단순화할 수 있습니다.
  • this 컨텍스트에 대한 사용자 정의 값을 전달해야 하는 경우 호출과 적용이 모두 가능합니다.
  • 함수를 객체로 작업할 때는 call을 사용하고 인수 배열을 처리할 때는 apply를 사용하는 것이 일반적으로 좋은 습관으로 간주됩니다.

위 내용은 JavaScript의 호출과 적용: 이러한 함수 호출 방법은 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿