개발 일기

일급함수 in javascript

권쓰 2020. 10. 28. 21:09
728x90
/**
일급함수
자바스크립트에서는 함수가 일급함수인데 함수를 값으로 다룰 수 있다.
함수를 변수에 담을 수 있고, 변수에 담은 함수가 값으로 다뤄질 수 있다.
*/

var f1 = function(a) {
return a * a;
}
console.log(f1);

var f2 = add;
console.log(f2);

// 함수가 함수를 인자로 받기
function f3(f) {
return f();
}
console.log(
f3(function() {
return 10;
})
);

/* add maker
순수함수도 사용되고, a를 기억하고있는 클로저
*/
function add_maker(a) {
return function(b) {
return a + b;
}
}

var add10 = add_maker(10);
console.log('--add maker--')
console.log(add10);
console.log(add10(20)); //30


// 함수가 함수를 인자로 받음
function f4(f1, f2, f3) {
return f3(f1() + f2()); // 2 + 1
}
console.log(
f4(
function() {
return 2;
},
function() {
return 1;
},
function(a) { // a = 3
return a * a;
}
)
); // 9