[Javascript] 자바스크립트 즉시실행 함수(IIFE)

즉시실행 함수(Immediately Invoked Function Expression)란 정의되자마자 즉각적으로 실행되는 자바스크립트 함수(Function) 중 하나입니다.

 

(function () {
    //변수 선언
    //변수 처리
    //특정 로직 등 구현
})();

 

즉시실행 함수는 두가지부분으로 이루어져있습니다.

 

첫째, 괄호로 둘러쌓인 익명함수부분 스코프기반의 자바스크립트에서 전역스코프로 자바스크립트의 불필요한 변수를 만들지 않고 마찬가지로 안쪽으로 불필요한 변수들이 선언되는 것을 방지할 수 있도록 합니다. 저는 이걸보고 라이브러리 모듈 같다고 생각했습니다.

 

둘째, 함수를 실행할때 사용되는 ()괄호 입니다. 자바스크립트 엔진이 문법을 읽고 선언된 함수를 즉각적으로 실행하게 됩니다.

 

즉시실행함수 예제

 

외부에서의 접근 불가
<script>
    (function () {
    	// 즉시실행함수의 내부에서 정의된 변수는 외부 범위에서 접근이 불가능하다.
    	var str = '코딩하는흑구';
    })();
    
    console.log(str); // throws "Uncaught ReferenceError: str is not defined"
</script>

 

즉시실행 함수를 변수에 할당할 때, 함수가 담기는 것이 아닌 Return 값만 담게된다.
<script>
    var result = (function () {
        var name = '코딩하는흑구'; 
        return name; 
    })(); 
    // 즉시 결과를 생성한다.
    console.log(result); // '코딩하는흑구'
</script>

 

댓글

Designed by JB FACTORY