Programming/JavaScript
[JavaScript] 자바스크립트 내부함수 / 콜백함수 / 클로저
NavyGuy
2016. 7. 11. 13:24
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 |