>웹 프론트엔드 >JS 튜토리얼 >`call()` 대 `apply()`: 언제 어떤 함수 호출 방법을 사용해야 합니까?

`call()` 대 `apply()`: 언제 어떤 함수 호출 방법을 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 07:16:14959검색

`call()` vs. `apply()`: When to Use Which Function Invocation Method?

호출 및 적용을 통한 함수 호출

함수를 호출할 때 프로그래머는 종종 Function.prototype.apply() 또는 Function을 사용하는 옵션을 접하게 됩니다. .prototype.call(). 이 문서에서는 두 메서드의 차이점과 사용 사례를 살펴봅니다.

apply()와 call()

근본적인 차이점은 함수 인수를 처리하는 방법에 있습니다.

  • apply(): 인수를 array.
  • call(): 인수가 명시적으로 나열되어야 하며 다음과 같이 구분되어야 합니다. 쉼표.

구문

Method Syntax
apply() function.apply(thisArg, [arg1, arg2, ...])
call() function.call(thisArg, arg1, arg2, ...)

니모닉

차이점을 기억하려면:

  • 에 대한 array: apply()는 인수 배열을 사용합니다.
  • 쉼표의 경우 C: call()에는 쉼표로 구분된 인수가 필요합니다.

사용 사례

  • call(): 특정 개수의 인수를 전달할 때 유용합니다.
  • apply(): 이상적인 경우 인수가 이미 배열에 저장되어 있거나 동적이 필요한 시나리오 바인딩.

성능 고려 사항

두 방법 모두 성능 특성이 비슷합니다. ES6 이상에서는 스프레드 연산자(...)를 call()과 함께 사용할 수 있어 apply()보다 더 간결한 대안을 제공합니다.

다음 함수를 고려하십시오.

function greet(name, occupation) {
  console.log(`Hello, my name is ${name} and I'm a ${occupation}.`);
}

apply() 및 call():

greet.apply(undefined, ["John", "engineer"]);
greet.call(undefined, "Mary", "doctor");

이 결과는 다음과 같습니다.

Hello, my name is John and I'm a engineer.
Hello, my name is Mary and I'm a doctor.

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

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