위 코드를 사용하게 되면 컴파일러가 코드를 읽는 즉시 alert로 Hello Javascript가 출력됩니다.
IIFE를 사용하는 이유!
1 2 3 4
(function() { var hello = "Hello Javascript"; })(); console.log(hello); // Uncaught ReferenceError: hello is not defined
즉시실행함수를 사용하게 되면 함수내에서 정의된 변수는 함수 외부에서 접근이 불가합니다.
1 2 3 4 5 6 7 8
var plus = (function () { var first = 1; var second = 2; return first + second; })(); console.log(plus); // 3 console.log(first); // Uncaught ReferenceError: first is not defined console.log(second); // Uncaught ReferenceError: second is not defined
즉시실행함수를 변수에 할당하면 즉시실행함수는 저장되지 않고, 함수가 실행된 결과만 저장됩니다. 이 역시 함수 내부에서 선언된 변수에는 접근이 불가합니다.