개발자 Saaad

[JavaScript] IIFE(Immediately Invoked Function Expression) 본문

학습/kakao X goorm 풀스택12회차

[JavaScript] IIFE(Immediately Invoked Function Expression)

Saaad 2024. 12. 7. 02:40

IIFE란 ? 

즉시 실행 함수 표현(IIFE : Immediately Invoked Function Expression)은 정의되자마자 즉시 실행되는 

JavaScript Function을 말한다.

 


사용목적

IIFE를 사용하는 주된 이유는 변수를 전역(global scope)으로 선언하는 것을 피하기 위해서입니다.

또한 IIFE 내부 안으로 다른 변수들이 접근하는 것을 막을 수도 있습니다.


예제

예제1

(
	function () {
    	var aName = 'Barry';
    }
)

//IIFE 내부에서 정의된 변수는 외부 scope에서 접근 불가
console.log(aName); //error : not defined

 

위 예제는 IIFE 함수로 정의된 함수의 변수를 외부에서 접근하려고 했으나 접근하지 못해 오류가 발생하는 예제입니다.

 

 

예제2

// 원래 함수 형태
var result = function () {
    	var aName = 'Barry';
        return aName;
};

// result는 함수자체를 리턴 받기 때문에 함수의 구조가 출력
console.log(result);

함수 자체가 출력

원래는 위와 같이 변수에 함수를 할당하면 메소드 자체를 변수에 담는 것이라 출력이 이렇게 나옵니다.

 

- IIFE 사용 

// IIFE 적용
var result = (function () {
    	var aName = 'Barry';
        return aName;
})();

// result는 즉시 실행된 함수의 결과가 담김
console.log(result); //Barry


 

이름 없는 함수를 위해서도 사용 가능

 

먼저 함수 리터럴(Function Literal)을 살펴보겠습니다.

함수 리터럴은 함수를 정의하는 표현식입니다.

 

이름 없는 함수로 변경 ( 조건 충족 시키기 )

 

함수를 즉시 호출


IIFE는 앞에 연산자를 붙여서 사용도 가능

하지만 화살표 함수에서는 무조건 "("로 시작해야 합니다.

 


오늘은 IIFE를 알아봤습니다.

감사합니다.