본문 바로가기

JAVASCRIPT

함수의 용도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));   

 

코드를 분석해 보자면 

retur funcs[plus] 는 'plus' : function(left, right){return left + right}, 을 뜻하고 있으며

 

cal('plus') 여기 부분은 'plus' : function(left, right){return left + right}을 뜻한다.

 

alert(cal(2,1)) 여기 부분이 가로가 있다는 것은 함수를 호출 했다는 뜻이며 

첫번째 인자는 2이고 두번째 인자는 1이다.

 

plus' : function(2, 1){return 2 + 1}, 은 3입니다. 

 

alert(cal('plus')(2,1)); 은 입니다.

 

 

alert(cal('minus')(2,1));   은 1이 출력됩니다.

 

 

여기서 중요한건 반환으로도 함수가 사용이 가능합니다.

 

 

 

 

 

그렇다면 배열값으로도 사용 할수 있습니다.

 

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,1,2 가 나옵니다.

 

process[0]일이고 2번째 인자값은 input=1

0번째 function(input){ return input *10},

11이 됩니다

그11인 iput 에 저장 됩니다.

 

process[1]일때 

 

 function(input){ return input * input;}, input값 11이 들어 가게 됩니다.

그래서 11**11 = 121이 됩니다.

 

process [3]일때 121이라는 값은 

  function(input){ return input / 2;} 에 들어가게 됩니다.

 

 60.5라는 값이 리턴됩니다.

 

alert(input)하게되면 60.5가 출력됩니다.

 

 

정리해보자면 

함수는 변수 , 매개변수, 리턴값으로 사용이 가능합니다. 

 

 

이포스팅은 생활코딩을 참조하여 만든 포스팅입니다. egoing님 감사합니다.

'JAVASCRIPT' 카테고리의 다른 글

클로저1  (0) 2020.11.02
콜백 -처리의 위임  (0) 2020.11.01
값으로서의 함수  (0) 2020.11.01
유효범위의 대상(함수) 와 정적 유효 범위  (0) 2020.11.01
전역변수의 사용  (0) 2020.11.01