본문 바로가기

JavaScript/Modern JavaScript

[JavaScript] 즉시 실행 함수 (IIFE)

[즉시 실행 함수]

 

함수 선언식에 다음과 같이 소괄호를 붙여주면 즉시 실행 함수(Immediately Invoked Function Expression)를 만들 수 있음.

 

(function () {
  console.log('Hi!');
})();
(function (x, y) {
  console.log(x + y);
})(3, 5);

 

즉시 실행 함수도 일반 함수처럼 파라미터 작성이 가능하고, 함수를 호출할 때 아규먼트를 전달 할 수도 있음.

 

(function sayHi() {
  console.log('Hi!');
})();

sayHi(); // ReferenceError

 

그러나 즉시 실행 함수는 함수에 이름을 붙여주더라도 외부에서 재사용 할 수가 없음.

 


[즉시 실행 함수의 활용]

 

(function init() {
  // 프로그램이 실행 될 때 기본적으로 동작할 코드들..
})();

 

즉시 실행 함수는 선언과 동시에 실행이 되기 때문에, 프로그램 초기화 기능에 이용함.

 

const firstName = Young;
const lastName = Kang;

const greetingMessage = (function () {
  const fullName = `${firstName} ${lastName} `;

  return `Hi! My name is ${fullName}`;
})();

 

재사용이 필요없는 일회성 동작에 사용되는데, 함수의 리턴값을 바로 변수에 할당하고 싶을 때 활용함.