해당 글은 '작성 중'이다.
IIFE
) ?즉시 호출 함수 표현식의 약자인 IIFE을 풀어보면 다음과 같다.
?? 당연해서 할 말이 없다..
즉시 호출 함수 표현식은 말 그대로 '함수 표현식을 즉시 호출하는 것'이다.
IIFE
의 사용(1)아래 코드는 일반적으로 함수를 선언하고, 호출하고 있다.
var a = 2;
function foo() { // 함수 선언문: foo() 함수 선언
var a = 3;
console.log(a); // 3
}
foo(); // foo() 함수 호출
console.log(a); // 2
이를 즉시 호출 함수 표현식을 사용하면 다음과 같다.
var a = 2;
(function foo() { // 함수 표현식
var a = 3;
console.log(a); // 3
})(); // 즉시 호출 함수 표현식으로 변경
console.log(a); // 2
먼저, ( )
로 함수를 감싸면 함수 선언문을 함수 표현식으로 바꾼다.
그리고 (function foo( ) { }) ()
처럼 마지막에 또 다른 ( )
를 붙이면 함수를 즉시 실행할 수 있다.
따라서 첫 번째 코드의 foo();
로 함수를 호출할 필요가 없다.
IIFE
의 사용(2)어떤
IIFE
의 이름IIFE도 함수 표현식이기 때문에 이름이 꼭 필요하지 않다.
IIFE는 익명 함수 표현식으로 가장 흔하게 사용된다.
var a = 2;
(function() {
var a = 3;
console.log(a); // 3
})();
console.log(a); // 2
하지만 기명 IIFE를 사용하는 것이 좋은 습관이라 할 수 있겠다.