일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Database
- VIM
- BFS
- react
- Redux
- LeetCode
- Data Structure
- DFS
- 동적 계획법
- git
- 안드로이드
- java
- Javascript
- DP
- network
- 다이나믹 프로그래밍
- 그레이들
- CS
- TypeScript
- 프로그래머스
- vscode
- db
- 알고리즘
- Python
- 자바
- 리트코드
- Graph
- Algorithm
- frontend
- 백준
Archives
- Today
- Total
늘 겸손하게
JavaScript - Callback 본문
콜백
다른 코드에 인수로서 넘겨주는 실행 가능한 코드를 콜백(callback) 또는 콜애프터 함수(call-after function)라고 부릅니다.
아래와 같은 배열이 있다고 해보자
let numbers = [20, 10, 9, 8, 7, 5];
위 배열을 내장함수인 sort()를 이용해 정렬하고 콘솔에 출력해보자
let numbers = [20, 10, 9, 8, 7, 5];
numbers.sort();
console.log(numbers)
정렬이 되긴 되나 이상하게 된다.
이상하게 정렬된 이유는 sort() 메소드의 인자로 compareFunction() - 비교함수를 주지 않아서 디폴트로 원소들을 문자열로 보고 유니코드 포인트 순서대로 문자열을 정렬했기 때문.
배열을 제대로 정렬할 수 있도록 compareFunction을 구현하고 sort 메소드에 인자로 줘보자.
let compare = function(a, b) {
return a - b;
}
let numbers = [20, 10, 9, 8, 7, 5];
numbers.sort(compare)
console.log(numbers)
원하는대로 정렬이 된다.
정리
자바스크립트는 함수가 값으로 사용될 수 있어서 함수의 인자로 함수를 전달할 수 있다. 값으로 전달된 함수는 호출까지 가능하여 사용자가 구현한 함수를 값으로 전달하여 특정 함수의 기능을 바꾸는것도 가능하다.
이처럼 함수를 값으로 전달하여 넘겨주는 코드를 콜백(callback) 또는 콜애프트 함수(call-after function)이라고 부른다.
이러한 콜백함수는 자바스크립트 비동기 처리, 이벤트 처리에 자주 쓰인다.
'Programming > JavaScript' 카테고리의 다른 글
JavaScript - 함수 선언식과 함수 표현식 차이점 (0) | 2022.08.19 |
---|---|
JavaScript - 콜백 지옥 탈출 (0) | 2022.08.19 |
JavaScript - prototype & prototype chaining (0) | 2022.08.12 |
JavaScript - Hoisting ( 호이스팅 ) (0) | 2022.08.12 |
JavaScript - 실행 컨텍스트 ( Execution Context ) (0) | 2022.08.11 |