티스토리 뷰

JavaScript


내부함수


정  의

☞ 함수 안에 함수를 정의함

☞ 내부 함수를 포함한 함수를 부르기 전까지는 내부 함수는 메모리에 할당이 안되기 때문에 메모리를 효율적으로 사용 가능

☞ 내부 함수는 함수안에 정의 된 것이기 때문에 함수이름 중복을 피할 수 있음


1
2
3
4
5
6
7
     function outer(){
         function inner(x){
             return x * x;
         }
         alert( inner(3) );
     }
     outer();
cs


콜백함수


정  의

☞ 함수의 매개변수로 불려지는 함수 ( 다른 함수로 전달 되는 함수 )


1
2
3
4
5
6
7
8
9
    function callThreeTimes(callBack){
        for(var i = 0 ; i < 3 ; i++)
            callBack();
    }
    var callBack = function(){
        alert('함수호출');
        
    }
    callThreeTimes(callBack);
cs



클로저(Closure)


정  의

☞ 내부 함수는 자신이 속한 함수의 지역변수에 접근 가능

☞ 내부 함수를 반환 할 수 있음

☞ 내부함수가 자신이 속한 함수의 지역변수를 물고 있어서 속한 함수가 종료됐음에도 지역변수가 해제되지 못하고 메모리에 남아 있는 현상


《 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가리킴 


1
2
3
4
5
6
7
8
9
10
11
    var makeIntroduce = function(name) {
        var intro = '안녕하세요. 제 이름은 ' + name + '입니다.';
        return function(){
            alert(intro);
        }
    }
    var hongIntro = makeIntroduce('Hong');
    var kimIntro = makeIntroduce('Kim');
    
    hongIntro();
    kimIntro();
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
Total
Today
Yesterday