• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

함수 동작 원리가 궁금합니다.

23.06.01 23:25 작성 조회수 297

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"); }