
“이 함수 처리해 주세요” = 콜백함수에 대한 제어권을 넘긴다
: 다른 함수(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);