반응형

익명 즉시 실행 함수

(function () {
    var a = 3;
    var b = 5;
  retrun a * b;   
}());

//함수 선언 소스 전치를 괄호로묶어서 전치되어이 있는 형태인 것입니다. 
//소스가 뒤에 있으므로 뒤에 세미콜론이 붙은 경우입니다.

기명 즉시 실행 함수

(function(){
    var a = 3;
  var b = 5;
  return a * b;
}());

foo; // ReferenceError : foo is not defined

⇒ 즉시실행함수는 함수 이름이 없는 익명 함수를 사용하는 것이 일반적입니다.

즉시 실행함수도 일반 함수처럼 값을 반환할 수 있고 인수를 전달할 수도 있습니다.

//즉시 실행 함수도 일반 함수처럼 값을 반환할 수 있다.
var res = (function () {
 var a = 3;
 var b = 5;
 return a * b;
}());

console.log(res); //15

//즉시 실행 함수에도 일반 함수처럼 인수를 전달할 수 있다.

res = (function(a,b){
    return a * b;
}(3, 5));

console.log(res); //15 

즉시실행함수는 반드시 그룹 연산자 (…) 로 감싸야 합니다.

그렇지 않으면 다음과 같은 에러가 발생합니다.

function() { ..//syntaxError: Function statements require a function name ..//
}();

즉시실행함수를 사용하려는 이유가 뭘까요??


;(function () {
        'use strict'
  ...

  ...
init()
})()

//세미콜론이 앞에 붙은 경우입니다.

+ Recent posts