티스토리 뷰
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 |
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] JQuery로 주민등록번호 남/녀, 성인/미성년 구분 (1) | 2016.07.14 |
---|---|
[JavaScript] 자바스크립트 객체 (0) | 2016.07.12 |
[JavaScript] 자바스크립트 반복문 / 조건문 / 함수 (0) | 2016.07.08 |
[JavaScript] 자바스크립트 변수 / 배열 / 객체 (1) | 2016.07.08 |
댓글