자바스크립트에서는 함수도 객체다. 함수는 값이고 객체 안에 저장 될 수 있다.
function a() {}
var a = function(){}
// 두 코드는 같은 의미이다.
함수는 값이기 때문에 다른 함수의 인자로 전달 될 수 있다.
function cal(func, num){
return func(num)
}
function increase(num) {
return num+1
}
function decrease(num) {
return num-1
}
console.log(cal(increase, 1));
console.log(cal(decrease, 1));
함수는 함수의 리턴 값으로도 사용 할 수 있다.
function cal(mode){
var funcs = {
'plus' : function(left, right){return left + right},
'minus' : function(left, right){return left - right}
}
return funcs[mode];
}
console(cal('plus')(2,1));
console(cal('minus')(2,1));