[JS/Func] 즉시 호출 함수 표현식 (IIFE)

Jay Kim·2020년 4월 30일
0

해당 글은 '작성 중'이다.

즉시 호출 함수 표현식(IIFE) ?

즉시 호출 함수 표현식의 약자인 IIFE을 풀어보면 다음과 같다.

  • Immediately즉시
  • Invoked호출
  • Function함수
  • Expression표현식

?? 당연해서 할 말이 없다..
즉시 호출 함수 표현식은 말 그대로 '함수 표현식을 즉시 호출하는 것'이다.

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를 사용하는 것이 좋은 습관이라 할 수 있겠다.

📚 참고 자료

  • 카일 심슨, 2017, 《You Don't Know JS: 타입과 문법, 스코프와 클로저》, 한빛미디어
profile
minuzai

0개의 댓글