16. 콜백 함수

wonyoung·2023년 5월 31일

JavaScript 기초 문법

목록 보기
13/13
post-thumbnail

콜백 함수


  • 콜백 함수(Callback Function)란 다른 함수의 매개변수로 전달되어 수행되어지는 함수
  • 고차 함수(Higher-order Function)란 매개변수를 통해 함수를 받아 호출하는 함수

// 콜백함수
function callback_func() {
  console.log("I'm callback function");
}

// 고차함수
function higher_order_func(callback) {
  console.log("I'm higher-order function");
  callback();
}

// 콜백함수 호출
higher_order_func(callback_func);

콜백함수 예제


function add(x, y) {
  return x + y;
}
function sub(x, y) {
  return x - y;
}
function mul(x, y) {
  return x * y; 
}
function div(x, y) {
  return x / y;
}

function calculator(callback, x, y) {
  return callback(x, y);
}

console.log(caculator(add, 7, 3)); // output: 10
console.log(caculator(sub, 7, 3)); // output: 4
console.log(caculator(mul, 7, 3)); // output: 21
console.log(caculator(div, 7, 3)); // output: 2.3333..

call by *


  • call by value
    값에 의한 복사로 함수 내에서 매개 변수 값을 변경 시켜도 영향이 미치지 않음
    원시 타입(primitive type)을 매개 변수로 넘겼을 때 발생
let a = 1;
let add = function(b) { b = b + 1; }; // callee
add(a); // caller
console.log(a); // output: 1
  • call by reference
    주소에 대한 복사로 함수 내에서 매개 변수 값을 변경시키면 원본 데이터에도 영향을 받음
    객체 타입(object type)을 매개 변수로 넘겼을 때 발생
var a = { v: 1};
var add = function(b) { b.v = b.v + 1; }; // callee
add(a); // caller
console.log(a.v)
profile
지치지 않는 개발자가 되자!

0개의 댓글