callback함수

하리보좋아·2023년 8월 22일
0

콜백함수

콜백함수는 간단하게 다른 함수에 매개변수로 넘겨준 함수를 말한다.
매개변수로 넘겨받은 함수는 일단 넘겨받고, 때가 되면 나중에 호출(called back)한다는 것이 콜백함수의 개념이다.

function sayHi(name){
  console.log(`${name}입니다.`);
}
function test(callback, name) {
  callback(name);
}

test(sayHi,'하리보좋아');

test함수의 인자에 sayHi함수, '하리보좋아' 가 들어간다.
test함수에서 callback함수인 sayHi가 호출된다.
callback함수에는 name에 '하리보좋아'가 들어간다.
sayHi에 console.log('${name}입니다.');가 실행된다.
function test(sayHi, '하리보좋아') {
sayHi('하리보좋아');
}
function sayHi('하리보좋아') {
console.log(하리보좋아입니다.);
}

문제 : 숫자 배열을 반복하며 각 숫자를 곱한 값을 출력하기
답 : 1 4 9 16 25

const array = [1, 2, 3, 4, 5];
function multiplication(number) {
  console.log(number * number);
}
function processAraay(array, callback) {
  for (let i = 0; i < array.length; i++) {
   let test = callback(array[i]);
    console.log(test);
  }
}
processAraay(array, multiplication);

processArray 함수 호출 인자 값으로 array, multiplication 함수를 넣어야한다.
for (let i = 0; i < array.length; i++)
array.length 배열의 크기만큼 반복을 시작한다.
test변수에 콜백함수를 출력
callback함수 (multiplication)를 호출하면서 넘겨받은 배열의 i번째 인덱스를 인자값으로 넣는다.
multiplication함수 number를 인자 값으로 받고 number number의 수를 리턴.
그럼 number인 파라미터에 array[i]를 받고 console.log(array[i]
array[i])가 되므로 출력값은 [1,4,9,16,25] 가 된다.

0개의 댓글