함수는 리턴 값으로도 사용 할수 있습니다.
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 |