콜백함수 (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
'Java Script' 카테고리의 다른 글
함수의 표현 / 함수 저장 / method / this (0) | 2023.06.12 |
---|---|
[자바스크립트] 재귀함수 사용방법 (팩토리얼 예시) (0) | 2023.06.05 |
[자바스크립트] 함수 총정리 (문법, 매개변수, 인수, 호출, 반환) (0) | 2023.06.05 |
[자바스크립트] 반복문 연습문제 (짝수의 합, 구구단 출력) (0) | 2023.06.05 |
[자바스크립트] 반복문 제어 break, continue (0) | 2023.06.04 |