
callback 함수의 인자로 전달된 인자가 this 키워드에 할당되는 것이 아니고, callback 함수 내에서 선언된 변수인 value, index, array 인자가 this 키워드에 할당됩니다.
이유는 callback 함수가 일급 함수이기 때문입니다. 일급 함수는 함수를 변수나 인자로 사용할 수 있으며, callback 함수도 이에 해당합니다.
따라서, callback 함수 내에서 선언된 변수인 value, index, array 인자가 this 키워드에 할당됩니다.
이 코드에서 console.log(this, value, index, array); 라인에서 this 키워드의 값은 undefined가 됩니다.
이유는 callback 함수가 일급 함수이기 때문에 this 키워드의 값이 undefined가 됩니다.
만약 callback 함수가 객체의 메서드인 경우 this 키워드의 값은 객체가 됩니다.
예를 들어, 다음 코드를 보겠습니다.
javascript
const obj = {
arr: [1, 2, 3, 4, 5],
callback: function() {
console.log(this, value, index, array);
return value * 2;
}
};
const result = obj.arr.map(obj.callback);
이 코드에서 console.log(this, value, index, array); 라인에서 this 키워드의 값은 obj가 됩니다.
이유는 callback 함수가 obj의 메서드인 경우 this 키워드의 값이 obj가 됩니다.
따라서, callback 함수의 인자로 전달된 인자가 this 키워드에 할당되는 것이 아니고, callback 함수 내에서 선언된 변수인 value, index, array 인자가 this 키워드에 할당됩니다.
2025-07-25 18:52