IIFE란?
IIFE(Immediately-Invoked Function Expressions)
정의되자마자 즉시 실행되는 함수 표현식
사용이유?
전역 스코프에 불핑요한 변수의 추가를 방지하고 IIFE 내부에 다른 변수들이 접근하는것을 막을 수 있다.
즉, 데이터 프라이버시와 코드 모듈화
문법
(function() {
console.log('hi IIFE')
}());
(function() {
console.log('hi IIFE')
})();
// 화살표 함수 사용
(() => console.log('IIFE with arrow'))();
(() => {
console.log('IIFE with arrow');
})();
첫번째 괄호 : function을 감싸는 첫번째 괄호는 익명함수 임을 정의한다.
두번째 괄호 : 마지막에 붙은 ()는 함수를 즉시 실행하고 인자를 받는 역할도 한다.
사용법
파라미터가 있는 IIFE
(function (name) {
console.log(`hello ${name}!`) // hello kim!
})('kim');
두번째 괄호 ()를 사용해서 kim이란 인자를 name에 전달
(function(x, y){
console.log(`${x * y}`) // 200
})(10, 20);
x, y에 각각 10, 20 전달
리턴값이 있는 IIFE
const sum = (function(x, y){
return x + y;
})(1, 2);
console.log(sum) // 3
즉시 실행되어 반환값은 sum에 할당된다.
reference
'개발 > JavaScript' 카테고리의 다른 글
[Javascript] Closure 클로저 (0) | 2022.03.30 |
---|---|
[Javascript] module export, import, 모듈 이름 수정 (0) | 2022.03.25 |
[Javascript] Strict mode (0) | 2022.03.25 |
[Javascript] Observer Pattern 옵저버 패턴 (0) | 2022.03.20 |
[Javascript] null VS undefined (0) | 2022.03.04 |