JavaScript에서 즉시 실행 함수
이제 함수를 선언한 바로 그 자리에서 호출할 수 있는 기법을 살펴보겠습니다. 이러한 구조를 Immediately Invoked Function Expression (IIFE)라고 합니다.
예제를 통해 살펴보겠습니다. 다음과 같은 함수 표현식이 있다고 가정해 보세요:
let func = function() {
console.log('!');
};
func(); // '!'를 출력합니다
이제 이 함수를 변수에 할당하지 않고, 선언 "즉시" 호출해 보겠습니다. 함수 뒤에 괄호를 붙이면 됩니다:
+function() {
console.log('!'); // '!'를 출력합니다
}();
이 경우 더하기 기호(+)의 존재는 필수 조건입니다. 그 이유는, 더하기 기호 없이는 함수가 Function Declaration이 되기 때문이며, Function Declaration은 (이름 없이) 그 자리에서 호출할 수 없습니다. 물론, 더하기 기호 대신 어떤 것이든 올 수 있습니다. 중요한 것은 우리의 함수가 함수 표현식이어야 한다는 것입니다.
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
!function() {
console.log('!');
}();
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function() {
console.log('!');
}();