값으로서 함수

값으로서 함수(function)

JavaScript에서는 함수도 객체, 다른 언어와 다르게 Javascript는 함수가 값이 될 수 있음

//함수 a는 변수 a에 담겨진 값, 또한 함수는 객체의 값으로 포함될 수 있음
function a(){}
var a = function(){}

1. 속성(property) : 메소드(method)

//b = 속성, function = 메소드
a = {
    b:function(){
    }
};

2. 함수 = 값, 다른 함수의 인자로 전달될 수 있음

function cal(func, num){
    return func(num)
}
function increase(num){
    return num+1
}
function decrease(num){
    return num-1
}
alert(cal(increase, 1)); //2
alert(cal(decrease, 1)); //0

함수 increse는 계산된 결과를 리턴, cal은 다시 그 값을 리턴 함

3. 리턴 값으로서 함수

function cal(mode){
    var funcs = {
        'plus' : function(left, right){return left + right},
        'minus' : function(left, right){return left - right}
    }
    return funcs[mode];
}
alert(cal('plus')(2,1)); //3
alert(cal('minus')(2,1)); //1

4. 배열의 값으로서 함수

var process = [
    function(input){ return input + 10;}, //11
    function(input){ return input * input;}, //121
    function(input){ return input / 2;} //60.5
];
var input = 1;
for(var i = 0; i < process.length; i++){
    input = process[i](input);
}
alert(input); //60.5

Last updated