본문 바로가기
반영훈/웹 개발

[JS] 익명함수(무명함수)와 즉시실행함수

by Banda 2020. 8. 13.
<script>
        func();
        function func() {alert('function A')};
        function func() {alert('function B')};
    </script>

일반적인 함수의 형태(선언적 함수)는 아래와 같이 함수에 sum이라는 이름을 붙여 재사용 할 수 있게 만듦.

 

function sum(a,b){
	var m = a + b;
    return m;
 }
 var sumanswer = sum(1,2);
 console.log(sumanswer);

 

 

이에 반해 익명함수의 경우는 아래와 같이 함수(function)에는 이름이 없고 함수에 바로 (a,b)라는 인수만 지정됨.

var sum = function(a,b){
	var m = a + b;
    return m;
}
var sumanswer = sum(1,2);
console.log(sumanswer);

 

위의 익명개념 함수에서 확장 된 것이 즉시실행함수

이 즉시실행함수는 변수 안에 함수와 인수값까지 몽땅 다 집어넣어서 사용하는 것

var sum=(function(a,b){
	var m = a + b;
    return m;
   })(1,2);
   
   console.log(sum);

 

출처 - https://osxtip.tistory.com/635

 

선언적 함수와 익명함수의 차이는 웹 브라우저가 script 태그 내부의 내용을 위에서 부터 한줄 씩 읽기 전에 선언적 함수부터 먼저 읽는다.

따라서 아래의 코드를 실행하면 오류가 발생한다.

 <script>
        func();
        var func = function () {alert('function A')};
        var func = function () {alert('function B')};
    </script>

 

익명함수를 저장한 변수를 선언하기 이전에 그 변수를 사용했기 때문이다.

따라서 오류가 나지 않게 하려면 아래와 같이 작성해주면 된다.

 

-출처 https://first-class.tistory.com/15

댓글