GRAMMAR

Draft
  • account_tree
  • bug_report

즉시 실행 함수(IIFE:Immediately-invoked Function expression)

즉시 실행 함수는 자바스크립트가 갖는 대표적인 특징이며 전역 공간의 남용을 막는 좋은 패턴이다.

즉시 실행 함수(IIFE:Immediately-invoked Function expression)는 자바스크립트가 갖는 주요 특징 중의 하나이며 전역 공간의 남용을 막는 좋은 대안으로 사용된다.

함수는 별도의 호출을 통해 실행하지만 즉시 실행 함수(IIFE:Immediately-invoked Function expression)는 호출 과정이 없어도 실행할 수 있다.

다음과 같은 기본 작성 패턴을 갖는다.

(function() {
    // statements
})();

즉시 실행 함수는 전역 스코프의 사용을 자제할 수 있는 대안중의 하나이며 즉시 실행 함수 내부로 다른 변수들이 접근하는 것을 방지할 수 있다. 즉시 실행 함수는 다음 두가지 패턴을 가질 수 있다.

익명 IIFE 패턴

아래의 함수는 즉시 실행되는 표현식 함수이다. 내부의 변수는 외부에서 접근이 불가하다.

(function  () {
    var str = "Hello";
})();

console.log(str); // throws "Uncaught ReferenceError: str is not defined"

할당형 IIFE 패턴

즉시 실행 함수를 변수에 할당하면 즉시 실행 함수는 변수에 저장되지 않고 실행된 결과만 저장된다.

var result = (function  () {
    var str = "Hello";
    return str;
})();

console.log(result); // 'Hello'