정리노트/메모

24.06.03. 노트

망고고래 2024. 6. 3. 22:03

JS

(function(window){

/*함수 내용*/

})(window)

즉시 실행 함수(IIFE) 표현식 중 하나
 
(function(){ /*함수 내용*/ })(window);는 즉시 실행 함수 표현식(IIFE, Immediately Invoked Function Expression)의 한 예입니다. 이 구문은 함수를 정의하자마자 즉시 실행하는 자바스크립트 디자인 패턴입니다. 여기서 window는 이 함수에 전달되는 인자로, 전역 window 객체를 참조합니다.
IIFE는 다음과 같은 특징을 가집니다:

  1. 캡슐화와 정보 은닉: IIFE 내부에 선언된 변수나 함수는 외부 스코프에서 접근할 수 없어, 코드의 충돌을 방지하고 정보를 은닉할 수 있습니다.
  2. 전역 변수 사용 최소화: 전역 스코프를 오염시키지 않고 코드를 구성할 수 있어, 다른 스크립트와의 충돌 가능성을 줄입니다.
  3. 초기화 코드 실행: 페이지 로드 시 필요한 초기 설정이나 준비 작업을 바로 실행할 수 있습니다.

이 경우, (function(){ /*함수 내용*/ })(window); 구문에서 함수는 window 객체를 매개변수로 받아 즉시 실행됩니다. 이를 통해 전역 window 객체를 함수 내부에서 사용할 수 있게 됩니다. 예를 들어, 이 함수 내에서 전역 변수나 함수를 window 객체에 추가하거나, window 객체의 속성을 사용하여 특정 작업을 수행할 수 있습니다.
예시:

(function(window){
    // 'window' 객체를 사용하는 코드
    var documentTitle = window.document.title;
    console.log("현재 문서의 제목은 " + documentTitle + "입니다.");
})(window);

이 코드는 웹 페이지의 제목을 콘솔에 출력합니다. IIFE를 사용함으로써, documentTitle 변수는 함수 외부에서 접근할 수 없으며, 전역 스코프를 깨끗하게 유지할 수 있습니다.