티스토리 뷰
Callback function
다른 함수의 인자로 사용되는 함수이며, 이름처럼 나중에 실행된다.
콜백함수를 전달 받은 함수의 동작에 따라 콜백함수는 동기적 or 비동기적으로 실행된다.
콜백함수가 자바스크립트 내부에서만 연산된다면 동기적으로 실행되고, (= Call Stack 에 쌓임)
외부에 있는 무언가에게 콜백 함수를 넘기는 경우 비동기적으로 실행된다. (= Callback Queue 에 쌓임)
동기적 (순차적 실행)
function fakeSetTimeout(callback, delay) {
callback();
}
console.log(0);
fakeSetTimeout(() => {
console.log('hello');
}, 0);
console.log(1);
[console]
0
hello
1
비동기적 콜백함수
분명 setTimeout 에 0초를 지연되게 했음에도 불구하고, 맨 마지막으로 실행되었다.
즉, 비동기적으로 실행
console.log(0);
setTimeout(() => {
console.log('hello');
}, 0);
console.log(1);
[console]
0
1
hello
참고 사이트
First-Class function
함수를 다른 변수와 동일하게 다루는 언어는 First-Class function를 가졌다고 표현합니다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수 있으며, 변수에도 할당할 수 있습니다.
'Javascript' 카테고리의 다른 글
| Javascript - Class, Object (0) | 2021.09.02 |
|---|---|
| Javascript- 함수 선언 vs 함수 표현식 (0) | 2021.09.02 |
| Javascript - function, parameter (0) | 2021.09.01 |
| Javascript - 논리연산자 (0) | 2021.08.28 |
| Javascript - 자료형 (0) | 2021.08.28 |