일부 문맥에서는 call과 invoke를 동일한 것으로 취급한다.
하지만 의미를 의도적으로 구분하는 경우, invoke는 간접적인 함수의 호출을 의미한다.
fn(); // I'm calling it
fn.call(); // I'm calling it
fn.apply(); // I'm calling it
JavaScript 함수는 fn()과 같이 직접 호출(call) 될 수 있고, fn.call(), fn.apply()와 같이 간접 호출(invoke)될 수도 있다.
두 경우 모두 함수 호출이지만, 직접 호출(call)은 말 그대로 함수를 직접 호출 하는 것이나 간접 호출(invoke)은 어딘가에 레퍼런스를 유지한 다음 간접 호출된다. 그래서 간접 호출(invole)는 보통 익명함수, 클로저, 델리게이트 등과 함께 제공된다.
Reference
반응형
'FrontEnd > HTML5 & CSS & JavaScript' 카테고리의 다른 글
[JavaScript] 한글 키보드 입력 시 이벤트가 두 번 호출되는 경우 (2) | 2022.05.02 |
---|---|
HTTP/1.1과 HTTP/2 (0) | 2022.04.04 |
[TypeScript] Type Alias vs Interface (0) | 2022.01.21 |
[JavaScript] 프로토타입 (0) | 2022.01.19 |
[JavaScript] .map(), .filter(), .reduce() API 비교 (0) | 2022.01.18 |
댓글