Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 즉시 실행 함수(IIFE)란 무엇인가?

자바스크립트에서 즉시 실행 함수(Immediate Function, IIFE)는 정의되는 순간 곧바로 실행되는 함수를 말합니다. 별도로 호출할 필요 없이 딱 한 번 실행하면 되는 초기화 작업이나 모듈 패턴 구현에 널리 사용됩니다.

일반 함수와 즉시 실행 함수의 차이

두 방식의 핵심적인 차이는 실행 시점변수 스코프(유효 범위)입니다. 아래 예제를 통해 확인해 보겠습니다.

1. 즉시 실행 함수의 경우

(function() {
    var str = "display";
}());

function display() {
    // str은 즉시 실행 함수 내부에 갇혀 있어 접근 불가
    alert(str); // undefined
}

변수 str은 즉시 실행 함수 내부에서 선언되었기 때문에 함수 외부에서는 접근할 수 없습니다. 이처럼 즉시 실행 함수는 내부 변수를 외부로부터 완전히 격리하여 전역 스코프의 오염을 막아주는 역할을 합니다.

2. 일반 함수의 경우

var str = "display";

function display() {
    // 전역 변수 str에 접근 가능
    alert(str); // "display" }

반면 위 예제에서 str은 전역 변수로 선언되었으므로, display() 함수를 호출하면 정상적으로 "display"가 출력됩니다.

매개변수를 전달하는 즉시 실행 함수

즉시 실행 함수에도 일반 함수처럼 인수를 전달할 수 있습니다.

var name = 'Amit';

(function(sName) {
    alert('Student name = ' + sName);
}(name));

함수를 정의하면서 동시에 name 값을 인수로 넘겨 실행하기 때문에, 페이지 로드 시점에 바로 "Student name = Amit" 알림창이 뜹니다.

정리

  • 즉시 실행 함수는 정의와 동시에 단 한 번 실행됩니다.
  • 내부 변수가 외부에 노출되지 않아 전역 네임스페이스 오염을 방지합니다.
  • 초기화 코드나 한 번만 필요한 로직을 깔끔하게 캡슐화할 때 유용합니다.