Function.prototype.apply 및 Function.prototype.call은 특정 this 값과 매개변수를 사용하여 함수를 호출할 수 있는 메서드입니다. 이 둘의 주요 차이점은 Apply를 사용하면 매개변수 배열을 전달할 수 있는 반면, 호출을 사용하려면 매개변수를 하나씩 나열해야 한다는 것입니다.
Function .prototype.apply는 특정 this 값과 인수 배열을 사용하여 함수를 호출할 수 있는 메서드입니다.
Apply 사용 구문은 -
func.apply(thisArg, argsArray)
여기서 thisArg는 함수 내에서 this로 사용될 값입니다. argsArray는 함수에 전달될 인수 배열입니다.
다음은 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>
을 사용하여 함수를 호출하는 예입니다. 위 코드는 아래 출력을 인쇄합니다.
Hello, John!
보시다시피 우리는 이 값을 설정하고 싶지 않기 때문에 thisArg에 null을 전달했습니다. 매개변수 "John"을 포함하는 argsArray에 대한 배열을 전달했습니다. 결과는 이름 매개변수로 "John"을 사용하여 sayHello 함수를 호출하는 것입니다.
Function.prototype.call은 특정 this 값과 매개변수 목록을 사용하여 메서드를 호출할 수 있는 함수입니다.
call을 사용하는 구문은
func.call(thisArg, arg1, arg2, ...)
입니다. 여기서 thisArg는 함수 내에서 this로 사용될 값입니다. arg1, arg2, ...은 함수에 전달될 인수입니다.
다음은 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>
위 코드는 아래 출력을 인쇄합니다.
Hello, John!
보시다시피 우리는 이 값을 설정하고 싶지 않기 때문에 thisArg에 null을 전달했습니다. 우리는 "John"을 유일한 주장으로 받아들입니다. 결과는 이름 매개변수로 "John"을 사용하여 sayHello 함수를 호출하는 것입니다.
아래 표에는 Function.prototype.apply와 Function.prototype.call의 주요 차이점이 강조되어 있습니다. -
비교 기본 사항 | Function.prototype. apply | Function.prototype.call | |
---|---|---|---|
정의 | 이 메소드를 사용하면 특정 this 값과 매개변수 배열을 사용하여 함수를 호출할 수 있습니다. | 이 메서드를 사용하면 특정 this 값과 인수 목록을 사용하여 함수를 호출할 수 있습니다. | |
Parameters | 우리는 매개변수 배열을 전달합니다. | 매개변수 목록을 전달합니다. | |
속도 | 새로운 함수를 생성하지 않기 때문에 호출하는 것보다 빠릅니다. | em> | 호출할 때마다 새로운 기능이 생성되므로 apply보다 느립니다. |
사용법 |
|
|
이 튜토리얼에서는 apply 와 call> 메소드의 차이점에 대해 논의했습니다. 둘 사이의 주요 차이점은 주장을 받아들이는 방식입니다. 이러한 방법은 용도가 다릅니다. 위의 표에서 사용량 행을 볼 수 있습니다.
위 내용은 JavaScript에서 Function.prototype.apply와 Function.prototype.call의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!