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

JavaScript 함수 호출을 괄호로 감싸는 이유는 무엇일까?

IIFE(즉시 실행 함수 표현식)란 무엇인가?

자바스크립트에서 괄호로 감싼 함수를 "즉시 실행 함수 표현식(Immediately Invoked Function Expression)" 또는 "셀프 실행 함수(Self Executing Function)"라고 부릅니다.

함수를 괄호로 감싸는 주된 목적은 네임스페이스를 형성하고 멤버 함수의 가시성(접근 범위)을 제어하는 것입니다. 코드를 함수 스코프 내부로 감싸면 전역 스코프 오염을 막고, 다른 라이브러리와의 이름 충돌 가능성도 크게 줄일 수 있습니다. 이러한 패턴을 바로 즉시 실행 함수 표현식(IIFE), 또는 셀프 실행 익명 함수라고 합니다.

기본 문법

IIFE의 기본적인 작성 형태는 다음과 같습니다.

(function() {
    // code
})();

괄호가 하는 역할

위 코드에서 첫 번째 괄호 쌍은 괄호 안의 코드를 하나의 표현식(expression)으로 변환합니다.

function(){...}

자바스크립트 엔진은 function 키워드로 시작하는 코드를 기본적으로 함수 '선언문'으로 해석합니다. 하지만 괄호로 감싸면 이 코드가 값으로 평가되는 함수 '표현식'으로 바뀝니다.

이어지는 두 번째 괄호 쌍은 앞서 만들어진 함수 표현식을 실제로 호출하는 역할을 담당합니다. 즉, 함수가 정의되는 순간 곧바로 실행되도록 만드는 것입니다.

정리하면, 첫 번째 괄호는 함수를 표현식으로 만들고, 두 번째 괄호는 그 함수를 즉시 실행합니다. 이 두 단계가 결합되어 전역 변수 충돌 없이 독립적인 스코프를 갖는 IIFE 패턴이 완성됩니다.