해결된 질문
작성
·
355
0
function checkmood(mood, goodCallback, bacCallback) {
if (mood === "good") {
goodCallback();
} else {
bacCallback();
}
}
checkmood("good", sing, cry);
function sing() {
console.log("sing");
}
function cry() {
console.log("cry");
}
checkmood("good", sing, cry) 이 부분에서 sing이 함수이지만 값으로 들어갔는데,
함수 인자는 값으로만 들어가는걸까요?!
답변 1
2
콜백(call back)함수란 다른 함수의 매개 변수로 전달되어 수행하는 '함수' 입니다.
제가 작성자 님의 질문을 제대로 이해 했는지 잘 모르겠지만 작성자 님께서는 해당 코드에서 sing() 함수의 값만 전달 되는지에 대해 궁금해 하시는 거 같은데 위에 콜백 함수 정의처럼 함수 자체가 전달 되는 것 입니다. 위 코드에 checkmood 함수에서 3개의 매개 변수를 받는 다고 하였으니 goodCallback 부분에 sing() 함수가 자체가 들어가 실행 되는 겁니다. 그러니 goodCallback(); 부분은 아래와 같이 해석할 수 있지요.
goodCallback(); = function sing() { console.log("sing"); }