값으로의 함수 : 자바스크립트에서는 함수도 객체, 일종의 값이다.
예제
//
function a(){}

 

위 예제에서 함수 a는 변수 a에 담겨진 값이다. 또한 함수는 객체의 값으로 포함될 수 잇다. 이렇게 객체의 속성 값으로 담겨진 함수를 메소드라 부른다.

 

//
a = {
 b:function(){
 }
};

 

함수는 값이기 때문에 다른 함수의 인자로 전달될 수도 있다.

 

//
function cal(func,num){
 return func(num)
}

function increase(num){
 return num+1
}

function decrease(num){
 return num-1
}

alert(cal(increase, 1));
alert(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];
}

alert(cal('plus')(2,1));
alert(cal('minus'))2,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);

 

콜백 : 함수가 수신하는 인자가 함수인 경우. 콜백은 비동기 처리에서도 유용하게 사용된다.


예제
// 문자로 정렬
var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber)); // [1,10,2,20,3,4,5,6,7,8,9]

 

// 배열 정렬
function sortNumber(a,b){
    // 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.
    return b-a;
}
var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber)); // array, [20,10,9,8,7,6,5,4,3,2,1]

 

비동기 처리

예제
//datasource.json.js
{"title":"JavaScript","author":"egoing"}

//demo1.html
<!DOCTYPE html>
<html>
<head>
<script src="jquery-3.2.1.min"></script>
</head>
<body>
<script type="text/javascript">
    $.get('http://localhost/javascript/datasource.json.js', function(result){
        console.log(result);
    }, 'json');
</script>
</body>
</html>

 

'Programming > Javascript' 카테고리의 다른 글

arguments, 매개변수의 수  (0) 2018.01.03
내부함수와 클로저  (0) 2018.01.03
유효범위  (0) 2018.01.02
모듈, 라이브러리  (0) 2018.01.02
객체  (0) 2018.01.02
블로그 이미지

꼴통보안인

,