콜백 함수
- 콜백 함수 : 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수
⭐ 함수의 괄호를 포함하여 전달하면 단순히 함수가 호출될 뿐 매개변수에 전달되지 않음
function callFunctionTenTimes(otherFunction){
// 전달받은 함수를 10번 호출
for(var i=0;i<10;i++){
otherFunction(); // 콜백함수 실행
}
}
// 선언적 함수
function justFunction(){
document.write('Happy Day!<br>');
}
// 함수 호출
callFunctionTenTimes(justFunction);
// justFunction() : 함수를 매개변수에 전달하는 것이 아니라 함수를 실행함
- 익명함수를 매개변수로 전달
callFunctionTenTimes(function(){
document.write('Hello World!<br>');
});
내부 함수
- 내부 함수 : 함수 내부에 선언한 함수
function f(){
// 내부 함수
function g(){
document.write('g is called');
}
// 내부 함수 호출
g();
}
f();
- 내부 함수 - 지역 변수
function f(){
// 변수 선언 및 초기화
var n=123;
// 내부 함수
function g(){
document.write('n is ' + n + '<br>');
document.write('g is called');
}
// 내부 함수 호출
g();
}
f();
- 내부 함수 - return
function f(){
// 변수 선언 및 초기화
var n=123;
// 내부 함수
function g(){
document.write('n is ' + n + '<br>'); // 변수 n 을 사용중이므로 소멸 안됨
document.write('g is called');
}
return g; // 내부 함수 반환
}
var m = f();
document.write(m + '<br>');
// 함수 호출
m();
클로저(Closure)
- 클로저 : 함수가 종료되어도 지역변수가 소멸되지 않고 남아있는 현상
function outerFunction(name) {
// 지역변수
var output = '안녕하세요. ' + name + ' 님!';
// 내부함수
return function(){
// 경고창
alert(output); // 내부함수에서 지역변수 사용
};
}
var message = outerFunction('홍길동');
message();
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] 배열 - 생성, 출력, 메소드 (0) | 2021.08.05 |
---|---|
[JavaScript] 내장 함수, 인코딩 함수 (0) | 2021.08.05 |
[JavaScript] 함수의 매개변수, 가변인자, return과 break (0) | 2021.08.05 |
[JavaScript] 지역변수와 전역변수, let 과 const (0) | 2021.08.05 |
[JavaScript] 선언적 함수, 익명 함수, 호이스팅 (0) | 2021.08.05 |