값으로서의 함수

Doyoon Lee·2020년 7월 1일
0

Javascript

목록 보기
5/23

값으로서의 함수

a = {
    b:function(){
    }
};
  • 객체 안에서 key(예시에서 b)가 변수의 역할을 하고, 그것을 속성(property)라고 부른다.
  • 객체 안에 속성과 함께 저장된 함수를 그러한 맥락에서 메소드(method)라고 부른다.


함수가 인자로 들어간 예시

function cal(func, num){ 
    return func(num)
}
function increase(num){
    return num+1
}

alert(cal(increase, 1));
  • 함수는 값이기 때문에 다른 함수의 인자로 전달 될수도 있다.
  • cal 을 실행하면 increase 가 첫번째 인자인 func 자리로, 1 이 num 자리로 간다.
  • cal 내부에 기능으로 그럼 increase(1) 을 실행해야 한다.
  • increase 함수로 가서 1을 argument 자리에 넣고 실행한다.
  • 결과로 2가 호출된다.


리턴 값으로 사용된 함수의 예시

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));
alert(cal('minus')(2,1));
  • 함수는 함수의 리턴 값으로도 사용할 수 있다.
  • 참고할 내용: 객체의 property key 값을 표현식(변수, 함수 등)을 이용해 지정하기.
    https://pro-self-studier.tistory.com/27


배열로 사용된 함수의 예시

var process = [
    function(input){ return input + 10;},
    function(input){ return input * input;},
    function(input){ return input / 2;}
];
var input = 1;
for(var i = 0; i < process.length; i++){
    input = process[i](input);
}
alert(input);
  • 함수는 배열의 값으로도 사용할 수 있다.
  • i = 0 일 때, 첫번째 function을 실행해서 input이 1이므로 첫번째 function에서 11이 return 되어 나오고, 새로운 input으로 11이 지정된다. i = 1이 되고, 두번째 function 후 121. i = 2가 되고 세번째 function 후 60.5 가 리턴되어 나온다.


0개의 댓글