728x90
일급 객체(First Class citizen)
1. 변수(variable)에 담을 수 있다.
2. 파라미터로 전달할 수 있다.
3. 함수의 반환 값으로 사용할 수 있다.
/***
* first class citizen(1급 객체)
* 변수에 할당(assignment)할 수 있다.
* 다른 함수를 인자(argument)로 전달 받는다.
* 다른 함수의 결과로서 리턴될 수 있다.
*/
function mul(num1, num2) {
return num1 * num2;
}
/***
* func는 매개변수, 이름은 func이건 mul이건 상관없음
* 매개변수(parameter)로 func를 받았고, 함수(func)를 리턴하기 때문에 고차함수
* @param func : func()의 매개변수가 2개라면 mulNum()의 매개변수도 2개이여야함
* @param number1
* @param number2
* @returns {*}
*/
function mulNum(func, number1, number2) {
return func(number1, number2);
}
// 전달인자(argument)로 받은 함수인 mul은 콜백함수
let result = mulNum(mul, 3, 4);
console.log(result);
// 다른 함수의 결과로 리턴 될 수 있다.
function add(num1) {
return function (num2) {
return num1 + num2;
}
}
const rs_add = add(3)(4);
console.log(rs_add);
|
728x90
'React > morden javascript' 카테고리의 다른 글
JavaScript Object.assign() (0) | 2023.10.17 |
---|---|
Javascript 클로저(Closure) (0) | 2023.10.06 |
[ES2020] optional chaining (0) | 2022.12.28 |
[ES6] 비구조화 할당(destructuring assignment) (0) | 2022.12.28 |
Javascript Array.filter 사용 예제 (0) | 2022.12.27 |