IIFE (Immediately Invoked Function Expression)
- 즉시 실행 함수 표현식
- 즉시 실행한다.
- 함수 표현식이다. (선언문X)
- 익명 함수, 기명함수 모두 가능하다.
익명함수 IIFE
(function(){ console.log('IIFE'); })();
(function(){ console.log('IIFE'); }());
- 더글락스 크락포드는 아래 방식이 에러를 덜 발생시킨다고 선호한다.
- 반대하는 사람도 있어서 스타일 차이로 인식하면 된다.
사용하는 이유
- 전역 스코프(global scope)를 오염시키지 않기 위함이다.
클로저와 private 데이터
const getCount = (function () {
let count = 1;
return function () {
count += 1;
return count;
};
})();
console.log(getCount());//2
console.log(getCount());//3
console.log(getCount());//4
console.log(getCount());//5