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패턴을 사용해서 충돌을 방지한다.

출처 : https://sseambong.tistory.com/250

Tags:

Categories:

Updated:

Leave a comment