“이 함수 처리해 주세요” = 콜백함수에 대한 제어권을 넘긴다

“이 함수 처리해 주세요” = 콜백함수에 대한 제어권을 넘긴다

제어권 위임

1. 실행시점

2. 매개변수

3. this

콜백함수의 특징

: 다른 함수(A)의 인자로

콜백함수(B)를 전달하면,

A가 B의 제어권을 갖게 된다.

특별한 요청(bind)이 없는 한,

A에 미리 정해놓은 방식*에 따라

B를 호출한다.

⬇️

*미리 정해놓은 방식

: 어떤 시점에 콜백을 호출할지,

인자에는 어떤 값들을 지정할지,

this에 무엇을 바인딩할지 등이다.

콜백은 ‘함수’다

var arr = [1,2,3,4,5];
var obj = {
	vals: [1,2,3],
	logValues: function(v,i) {
		if (this.value) {
			console.log(this.vals, v, i);
		} else {
			console.log(this.vals, v, i);
		}
	}
}
obj.logValues(1,2); // [1,2,3], 1, 2
arr.forEach(obj.logValues); 
arr.forEach(obj.logValues.bind(obj));
arr.forEach(obj.logValues, obj);