DODONOT Dev
article thumbnail

 

콜백함수 (Callback Function)

콜백 함수는 다른 함수에 매개변수로 전달된 다음, 외부 함수 내에서 호출되어 수행하는 함수이다.

고차함수 (Higher-order Function)

함수를 반환하거나 다른 함수들을 전달인자로서 사용하는 함수이다.

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

let calculator = (callback, x, y)=>{
  return callback(x, y);
}
console.log(calculator(add, 7, 3)); //10
console.log(calculator(sub, 7, 3)); //4
console.log(calculator(mul, 7, 3)); //21
console.log(calculator(div, 7, 3)); //2.3333333333333335

call by *

call by value

  • 값에 의한 복사로 함수 내에서 매개 변수 값을 변경 시켜도 영향이 미치지 않는다.
  • 원시 타입(primitive type)을 매개 변수로 넘겼을 때 발생
let a = 1; //원시 타입인 데이터를 매개 변수로 복사해서 넘겨도 원본 데이터에는 영향이 없음

let add = function (b) {return b = b+1;}; //callee(호출당함), 메모리에 b값이 따로 저장됨
let b = add(a); //caller (호출함)

console.log(a) // 1
console.log(b) // 2

call by reference

  • 주소에 대한 복사로 함수 내에서 매개 변수 내 값을 변경시키면 원본 데이터도 영향을 받는다.
  • 객체 타입(object type)을 매개 변수로 넘겼을 때 발생
let a = {value:1}; //객체를 매개 변수로 넘기면 주소에 대한 복사가 이루어짐

let add = function (b) {b.value = b.value + 1}; //callee(호출당함)
add(a); //caller (호출함)

console.log(a) // Object { value: 2 }
console.log(a.value) // 2

 

profile

DODONOT Dev

@두두나 Dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!