링크
function add(num1, num2) {
return num1 + num2;
}
function surprise(operator) {
const result = operator(2, 3);
console.log(result);
}
surprise(add);
- surprise라는 함수는 operator라는 인자를 받아온다.
- operator를 실행한 값을 result라는 변수에 할당해서 출력한다.
- surprise함수에 add라는 함수를 전달해보자.
- 이렇게하면 surprise의 인자인 operator에는 add의 reference가 복사되어서 전달된다.
- result는, operator를 호출한다는 것은, 당연히 이 reference가 당연히 add함수를 가르키게 된다.
- 그래서 operator를 호출하는 것은 add를 수행하는 것과 동일하다.
function divide(num1, num2) {
return num1/ num2;
}
function surprise(operator) {
const result = operator(2, 3);
console.log(result);
}