JavaScript 의 IIFE (함수 표현 식 즉시 호출)

5087 단어 JavaScriptES6
IIFE (Immediately Invoked Function Expression) 는 함수 표현 식 을 즉시 호출 하 는 것 을 말 합 니 다.다음 과 같다.
(function(){
    //    
})()

또한 ES6 의 화살표 함 수 를 사용 하여 코드 를 간소화 할 수 있 습 니 다. 다음 과 같 습 니 다.
(() => {
    //    
})()
  • 왜 함수 체 외 에 소포 괄호 가 필요 합 니까?
  • function(){
        //    
    }()  //   IIFE  
    

    이것 은 JavaScript 가 function 을 함수 성명 의 시작 으로 하고 함수 성명 의 끝 은 괄호 와 같 을 수 없 기 때 문 입 니 다.익명 함 수 를 괄호 로 감 싸 면 함수 표현 식 이 되 고 함수 표현 식 의 끝 은 괄호 와 같 습 니 다.
  • IIFE 의 역할
  • IIFE 는 독립 적 인 역할 영역 을 가지 고 있다.ES6 이전에 변 수 는 var 로 설명 하고 블록 급 역할 영역 이 없 으 며 IIFE 는 독립 된 역할 영역의 특성 을 이용 하여 블록 급 역할 영역 을 모 의 할 수 있 습 니 다.
    function log() {
      for (var i = 0; i < 10; i++) {
        console.log(i);
      }
      console.log(i); // 10
    }
    

    for 순환 이 끝 난 후에 도 변수 i 는 소각 되 지 않 고 접근 할 수 있 습 니 다.만약 우리 가 i 를 다시 방문 하 게 하고 싶 지 않다 면, 그것 을 IIFE 안에 감 싸 도 된다.
    function log() {
      (function(){
      	for (var i = 0; i < 10; i++) {
          console.log(i);
      	}
      })();
      console.log(i); //   ,i is not defined
    }
    

    주: 이러한 격 리 변 수 는 일반적으로 전체 역할 영역 에 사 용 됩 니 다.전역 역할 영역 에서 변 수 는 최대한 피해 야 한다. 특히 여러 개발 자가 협동 하여 개발 할 때 모든 프로그래머 는 자신의 코드 를 IIFE 에 감 싸 개인 역할 영역 을 형성 하여 자신의 변수 가 전체 환경 을 오염 시 키 는 것 을 방지 해 야 한다.
  • ES6 가 블록 급 역할 영역 을 도 입 했 는데 IIFE 가 아직도 존재 할 필요 가 있 습 니까?
  • 좋은 웹페이지 즐겨찾기