[Javascript] IIFE - 즉시 실행 함수 표현식

min5x5·2024년 1월 8일

Javascript

목록 보기
1/4
post-thumbnail

즉시 실행 함수 표현식(Immediately Invoked Function Expression, IIFE)은 JavaScript에서 함수를 정의하고 즉시 실행하는 패턴을 나타낸다. 이 패턴은 함수를 정의한 후 즉시 호출하여 생성된 함수의 실행 결과를 얻을 수 있다. IIFE는 주로 스코프를 만들어 변수의 유효 범위를 제한하거나 모듈 패턴을 사용할 때 유용하게 활용된다.

  • IIFE의 일반적인 구문
(function() {
    // 함수 본문
})();

// 화살표 함수를 사용하여 정의된 함수를 만들고 즉시 실행한다.
(() => {
  // 여기에 함수 본문이 들어갑니다.
})();
  • 함수에 매개변수를 전달할 때
// argument가 parameter로 전달되어 함수가 즉시 실행된다.
(function(parameter) {
    // 함수 본문
})(argument);
  • 예제
(function() {
    var message = "Hello, IIFE!";
    console.log(message);
})();

위의 코드에서는 함수를 선언하고 즉시 호출하여 "Hello, IIFE!"라는 메시지를 콘솔에 출력한다. 이렇게 하면 message 변수가 IIFE의 스코프 안에서만 유효하며, 외부에서는 접근할 수 없다. 이렇게 스코프를 만들어서 변수 충돌을 방지하고 전역 네임스페이스를 깨끗하게 유지할 수 있다.

IIFE를 사용하여 함수를 즉시 실행하는 이점 중 하나는 전역 스코프 오염을 방지하는 것이며, 또 다른 이점은 모듈 패턴을 사용하여 변수와 함수를 캡슐화하고 외부에 노출시키지 않을 수 있다는 점이다. 예를 들면:

var myModule = (function() {
    var privateVar = "I am private!";

    function privateFunction() {
        console.log("This is a private function!");
    }

    return {
        publicVar: "I am public!",
        publicFunction: function() {
            console.log("This is a public function!");
        }
    };
})();

console.log(myModule.publicVar); // 접근 가능
console.log(myModule.privateVar); // undefined (접근 불가능)
myModule.publicFunction(); // 호출 가능
myModule.privateFunction(); // 에러 (접근 불가능)

이렇게 모듈 패턴을 활용하면 전역 스코프에서 변수와 함수를 보호하면서 필요한 부분만 외부에 노출시킨다.

profile
삶에 변화를 만드는 개발자

0개의 댓글