[JS] 값으로서의 함수와 콜백

다인·2022년 7월 29일
0

JavaScript

목록 보기
7/9

함수가 값이 될 수 있으며, 변수나 객체에 담길 수 있음.
메소드 객체의 속성에 저장된 함수

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

다른 함수의 인자로 전달될 수도 있음.

function cal(func, num) {
	return func(num)  //함수 호출
}

//리턴값으로 전달 가능
function cal(mode){
	var funcs = {
		'plus' : function(left, right) { return left+right }
      	'minus' : function(left, right) { return left-right }
	}
	return funcs[mode];
}

배열의 값으로 사용 가능.

콜백

값으로 사용될 수 있는 특성을 이용하면 함수의 인자로 함수를 전달할 수 있음.

<body>
    <script type="text/javascript">
      var numbers = [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
      var sortf = function (a, b) {
        console.log(a, b);
        return a-b;
        /*if (a > b) {
          return 1;
        } else if (a < b) {
          return -1;
        } else return 0;*/
      };
      numbers.sort(); //sort는 numbers객체에 있는 것이므로 메소드
      console.log(numbers.sort(sortf));
    </script>
  </body>

이때 sortf가 callback function.
sort가 동작하는 방식을 sortf로 바꿀 수 있음.

콜백은 비동기처리에서도 유용하게 사용됨. 작업이 완료된 후 처리해야할 일을 콜백으로 지정하면 해당 작업이 끝났을때 미리 등록한 작업을 실행하도록 할 수 있음.

profile
개발자국

0개의 댓글