프로그래밍 언어/HTML,CSS,JS

[javascript] call와 apply의 차이점

Rateye 2021. 11. 22. 10:48
728x90
반응형
질문 : 전화와 신청의 차이점은 무엇입니까?

call 을 사용하는 것과 함수를 호출하기 위해 apply 하는 것의 차이점은 무엇입니까?

var func = function() {
  alert('hello!');
};

func.apply(); vs func.call();

앞서 언급 한 두 가지 방법간에 성능 차이가 있습니까? call 오버 apply 을 사용하는 것이 가장 좋으며 그 반대의 경우는 언제입니까?

답변

apply arguments 를 배열로 사용하여 함수를 호출 할 수 있다는 것입니다. call 하려면 매개 변수를 명시 적으로 나열해야합니다. 유용한 니모닉은 " A rray, Cc omma"입니다.

신청전화 에 대한 MDN의 문서를 참조하십시오.

의사 구문 :

theFunction.apply(valueForThis, arrayOfArgs)

theFunction.call(valueForThis, arg1, arg2, ...)

call 함수와 함께 사용하기 위해 배열 spread 시킬 수있는 가능성이 있습니다 . 여기서 호환성을 확인할 수 있습니다.

샘플 코드 :

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");
theFunction.call(undefined, ...["Matthew", "physicist"]); // used with the spread operator

 

출처 : https://stackoverflow.com/questions/1986896/what-is-the-difference-between-call-and-apply
728x90
반응형