- 즉시-실행 함수 표현식
- 함수 표현식을 즉시 실행하는 것을 말한다.
📌 사용 이유
- 보통 전역 스코프(Global Scope)를 오염시키지 않기 위해서 사용한다. 즉, 변수를 전역 스코프에 선언하는 것을 피하기 위함이다.
📌 클로저와 private 데이터
- IIFE 안에서 클로저를 생성하면 private 데이터를 만들 수 있고 외부에서 접근할 수 없다.
아래는 내가 백준에서 자주 사용하는 코드이다.
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
IIFE안의 익명함수는 클로저가 되고 변수 line 은 private 데이터가 되므로 밖에 보여지지 않는다. 흔히 말하는 모듈 패턴이 바로 이 방식에 의존한다.
출처
IIFE (Immediately-Invoked Function Expression)