JavaScript에서 매개변수로 함수 전달하기
함수는 숫자, 문자열, 배열과 마찬가지로 다른 함수의 매개변수로 전달될 수 있습니다.
실제 예를 통해 자세히 알아보겠습니다.
두 개의 매개변수를 받는 함수 test가 있다고 가정해 봅시다:
test(parameter1, parameter2);
함수 test의 첫 번째 매개변수로
1을 반환하는 익명 함수를 전달하고,
두 번째 매개변수로는 2을 반환하는 익명
함수를 전달해 봅시다:
test(
function() {return 1;},
function() {return 2;}
);
위에 제시된 코드는 아직 함수 자체를 생성하지 않았기 때문에 작동하지 않습니다. 이를 만들어 봅시다:
function test(func1, func2) {
}
함수를 정의할 때 두 개의 매개변수
- func1과 func2를 지정했습니다. 이러한 매개변수들
은 그 안에 무엇이 전달될지 알지 못합니다.
예를 들어, 숫자를 전달할 수 있습니다:
test(1, 2); // 함수 호출
function test(func1, func2) {
console.log(func1); // 1 출력
console.log(func2); // 2 출력
}
또는 함수를 전달할 수도 있습니다:
test(
function() {return 1;}, // 첫 번째 매개변수
function() {return 2;} // 두 번째 매개변수
);
function test(func1, func2) {
console.log(func1); // 'function() {return 1;}' 출력
console.log(func2); // 'function() {return 2;}' 출력
}
보시다시피, 이제 콘솔에는 함수들의 소스 코드가 출력됩니다. 결과를 출력하도록 만들어 봅시다. 이를 위해 함수들에 괄호를 붙여 작성합니다:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // 1 출력
console.log( func2() ); // 2 출력
}
첫 번째 함수와 두 번째 함수의 결과 합계를 콘솔에 출력해 봅시다:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3 출력
}
3개의 함수를 매개변수로 받는 함수 test를 만드세요.
첫 번째 매개변수로 1을 반환하는 함수,
두 번째로 2을 반환하는 함수,
세 번째로 3을 반환하는 함수를 전달하세요.
함수들의 결과 합계를 콘솔에 출력하세요.