-
콜백 (callback)concept/javascript 2020. 5. 27. 02:43
대표 예시
setTimeout에서 실행되는 함수 안에서 일어나는 연산들을 가져오기
//함수 표현식 function helloWorld (callback) { setTimeout(()=>{ var a = 'hello'; var b = 'world'; callback(a + b) //<--여기 콜백함수가 있습니다! }, 2000) } //함수 호출 helloWorld((value) => { console.log(value) }) //결과는 undefined가 나오고 2초 후에 helloworld 가 나온다.
먼저 undefined가 나오는 이유는 function helloWorld의 리턴값이 없기 때문이다.
그리고 undefined가 호출 된 후 함수 내부에서 setTimeout이 실행되고 있어서 2초의 시간이 소요된다.
setTimeout 안에는 callback 함수가 실행되고 있다. (**여기 콜백함수가 있습니다! 부분)
helloWorld 함수를 호출할 때, 전달인자로 console.log로 value를 콘솔에 찍는 익명함수를 전달했다.
이 익명함수는 앞에서 function helloWorld에서 함수를 선언했을 때 파라미터로 적어준 콜백 함수가 되는 것이고 그 콜백 함수의 기능이 함수를 호출할 때 만들어진 것이다.
그래서 setTimeout 내부에서 실행되는 함수는 지정된 밀리초 후에 hello + world를 콘솔창에 출력하게 되는 것이다.
'concept > javascript' 카테고리의 다른 글
콜백 때려잡기 (0) 2020.06.26 프로미스 기초 (0) 2020.06.26 Subclassing - understanding prototype chain (Object.create()의 활용법) (0) 2020.05.10 prototype vs __proto__ vs constructor (0) 2020.05.09 Instantiation Patterns (인스턴스화 패턴) (0) 2020.05.08