-
[Javascript] 즉시 실행 함수 IIFE구버전/JavaScript 2024. 1. 18. 18:20
즉시 실행 함수란? (IIFE)
정의되자마자 즉시 실행되는 함수로 소괄호로 함수를 감사 실행하는 문법이다.
(function () { console.log("IIFE"); })(); // 화살표 함수로도 사용 가능하다 (() => { console.log("IIFE"); })();
- 선언과 동시에 출력한다는 것을 알 수 있다.
- 기명 함수로 사용할 수 있지만 선언과 동시에 호출되어 반환되어 재사용 할 수 없기에 이름을 지어주는 것이 의미가 없다.
특징
- 필요없는 전역 변수의 생성을 줄일 수 있다
- private한 변수를 만들 수 있다.
활용예제
단 한번의 사용이 필요한 함수
let isAdult; (function init(age) { let currentAge = age; if (age >= 20) { isAdult = true; } else { isAdult = false; } })(20); console.log(isAdult); // true console.log(currentAge); // Uncaught ReferenceError: currentAge is not defined
- 변수를 초기화해주는 함수가 대표적으로 있으며 아래 호출에서 currentAge는 private하게 접근할 수 없는 변수가 되었다
const Counter = (function counterIIFE() { // 현재 counter 값을 저장하기 위한 변수 let current = 0; return { getCurrentValue: function () { return current; }, increaseValue: function () { current = current + 1; return current; }, decreaseValue: function () { current = current - 1; return current; }, }; })(); console.log(Counter.getCurrentValue()); // 0 console.log(Counter.increaseValue()); // 1 console.log(Counter.decreaseValue()); // 0
- 위 예제의 current 변수는 private하기에 클로저를 통한 접근 외에는 접근 및 수정이 불가능하다
'구버전 > JavaScript' 카테고리의 다른 글
[Javascript] prototype, class (0) 2024.01.18 [Javascript] 메모리 할당 (1) 2024.01.18 [Javascript] strict mode (0) 2024.01.18 [Javascript] Blocking / Non-Blocking vs Sync / Async (0) 2024.01.17 [CS Study] 화살표 함수와 일반 함수 (0) 2024.01.08