JS IIFE(즉시 호출 함수 표현식)
Updated:
IIFE란?
IIFE(Immediately Invoked Function Expressions: “Iffy”라고 발음)는 즉시 호출 함수 표현식의 줄임말이다. 기본적인 형태
(function(){
//Do fun stuff
})();
이것은 즉시 호출되는 익명함수 표현식이다. 이것은 javaScpript에 때에 따라 중요하게 사용됨
즉시 호출 함수 표현식은 어떻게 동작?
괄호쌍이 익명함수를 감싸서 함수선언을 함수표현식으로 표현할 수 있다. 그러므로 단순한 익명함수를 글로벌 스코프에 선언하지않고, 어디서든 익명함수 표현식을 가질 수 있다.
//괄호 사용 안함
function() {
console.log('NO IIFE')
}(); //ERROR
//괄호 사용(즉시 호출함수 IIFE)
(function(){
console.log('IIFE');
})();
//함수 표현과 즉시함수
(showName = function(0 {
console.log(name || "NO Name");
})();
showName("Rich"); //Rich
showName(); //NO Name
IIFE 예제 1
const message = (function() {
const secret = "I m secret";
return `The Secret is ${secret.length} characters long.`
})();
console.log(message);
변수 secret은 IIFE의 스코프 안에서 안전하게 보호되면서 외부에서 접근 할수 없다. IIFE는 함수 이므로 무엇이든 반환 할 수 있다.
IIFE 예제 2
// 호출된 함수를 가지고 있는 변수 f
const f = (function() {
let count = 0;
return function() {
return `i have been called ${++count} time(s).`
}
})();
f(); //1
f(); //2
IIFE를 사용하는 이유와 언제사용?
글로벌 스코프를 오염시키지않게 하기 위해서 사용한다. 대표적인 라이브러리들은 IIFE패턴을 사용해서 충돌을 방지한다.
Leave a comment