즉시 실행 함수란?
함수를 선언함과 동시에 즉시 실행되는 함수를 나타냅니다. 즉시 실행 함수는 코드가 실행될 때 딱 한 번만 실행되며 그 후에는 다시 호출할 수 없습니다. 그렇기 때문에 초기화 기능으로 사용하는 편입니다.
기본 사용법
// 함수 선언문의 즉시 실행 함수
(function process() {
var a = 1;
var b = 2;
return a + b;
}());
// 함수 표현식의 즉시 실행 함수
var process = (function() {
var a = 1;
var b = 2;
return a + b;
}());
기존의 함수 선언문에 "()"를 붙이고 전체 선언식을 다시 한번 소괄호로 감싼 형태입니다.
즉시 실행 함수의 사용 이유
자바스크립트에서 전역 공간에 수많은 변수를 선언하다 보면 변수명이 겹쳐서 프로그램에 문제가 생기거나 혼란을 야기할 수 있습니다. 이러한 문제점을 즉시 실행 함수를 이용하면 개선할 수 있습니다.
즉시 실행 함수의 스코프
/ 즉시 실행 함수만의 스코프 영역을 가짐
(function () {
var foo = 1;
console.log(foo); // 결과: 1
}());
var foo = 100;
console.log(foo); // 결과: 100
즉시 실행 함수는 자신만의 독립된 스코프를 만들기 때문에 전역 공간에 영향을 받지 않습니다. 따라서 함수명 같아도 유효 범위가 다르기 때문에 아무런 문제가 생기지 않아 초기화 작업을 안정적으로 할 수 있게 됩니다.