>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 Function.prototype.apply와 Function.prototype.call의 차이점

JavaScript에서 Function.prototype.apply와 Function.prototype.call의 차이점

WBOY
WBOY앞으로
2023-08-24 13:05:021500검색

JavaScript 中 Function.prototype.apply 和 Function.prototype.call 的区别

Function.prototype.apply ​​​​및 Function.prototype.call은 특정 this 값과 매개변수를 사용하여 함수를 호출할 수 있는 메서드입니다. 이 둘의 주요 차이점은 Apply를 사용하면 매개변수 배열을 전달할 수 있는 반면, 호출을 사용하려면 매개변수를 하나씩 나열해야 한다는 것입니다.

Function.prototype.apply

​​>

Function .prototype.apply는 특정 this 값과 인수 배열을 사용하여 함수를 호출할 수 있는 메서드입니다.

Syntax

Apply 사용 구문은 -

func.apply(thisArg, argsArray)

여기서 thisArg는 함수 내에서 this로 사용될 값입니다. argsArray는 함수에 전달될 인수 배열입니다.

Example

다음은 apply -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.apply(null, ["John"])
   </script>
</body>
</html>

Output

을 사용하여 함수를 호출하는 예입니다. 위 코드는 아래 출력을 인쇄합니다.

Hello, John!

보시다시피 우리는 이 값을 설정하고 싶지 않기 때문에 thisArg에 null을 전달했습니다. 매개변수 "John"을 포함하는 argsArray에 대한 배열을 전달했습니다. 결과는 이름 매개변수로 "John"을 사용하여 sayHello 함수를 호출하는 것입니다.

Function.prototype.call

Function.prototype.call은 특정 this 값과 매개변수 목록을 사용하여 메서드를 호출할 수 있는 함수입니다.

Syntax

call을 사용하는 구문은

func.call(thisArg, arg1, arg2, ...)

입니다. 여기서 thisArg는 함수 내에서 this로 사용될 값입니다. arg1, arg2, ...은 함수에 전달될 인수입니다.

Example

다음은 call을 사용한 예입니다. Call 함수 -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.call(null, ["John"])
   </script>
</body>
</html>

Output

위 코드는 아래 출력을 인쇄합니다.

Hello, John!

보시다시피 우리는 이 값을 설정하고 싶지 않기 때문에 thisArg에 null을 전달했습니다. 우리는 "John"을 유일한 주장으로 받아들입니다. 결과는 이름 매개변수로 "John"을 사용하여 sayHello 함수를 호출하는 것입니다.

Function.prototype.apply와 Function.prototype.call의 차이점

아래 표에는 Function.prototype.apply와 Function.prototype.call의 주요 차이점이 강조되어 있습니다. -

비교 기본 사항 Function.prototype. apply Function.prototype.call
정의 이 메소드를 사용하면 특정 this 값과 매개변수 배열을 사용하여 함수를 호출할 수 있습니다.

이 메서드를 사용하면 특정 this 값과 인수 목록을 사용하여 함수를 호출할 수 있습니다.

Parameters 우리는 매개변수 배열을 전달합니다.

매개변수 목록을 전달합니다.

속도 ​​ 새로운 함수를 생성하지 않기 때문에 호출하는 것보다 빠릅니다. em>

호출할 때마다 새로운 기능이 생성되므로 apply보다 느립니다.

사용법
  • 다음에 배열 추가

  • 반복 없이 내장 함수 작성

  • 객체의 생성자를 연결합니다.

  • 익명 함수를 호출합니다.

  • 함수를 호출하고 "this"의 컨텍스트를 지정합니다.

  • 첫 번째 인수를 지정하지 않고 함수를 호출합니다.

결론

이 튜토리얼에서는 apply ​​​​와 call> 메소드의 차이점에 대해 논의했습니다. 둘 사이의 주요 차이점은 주장을 받아들이는 방식입니다. 이러한 방법은 용도가 다릅니다. 위의 표에서 사용량 행을 볼 수 있습니다.

위 내용은 JavaScript에서 Function.prototype.apply와 Function.prototype.call의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제