정리 :
1. arr의 forEach메서드는 callback과 thisArg를 인자로 가질 수 있으며, callback함수안에서 thisArg를 참조할 수 있다.
2. callback함수는 callback(data,index, arr)를 인자로 가질 수 있다.
arr.forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
arr.forEach((data,index,fullArr) =>{
console.log(`this is data : ${data} | index : ${index} | fullArr :${fullArr}`)
})
const arr = [0,1,2,3,4,5,6,7,8,9,10];
const obj1 = {name: "kim"};
const obj2 = {name: "park"};
arr.forEach(function(element){
console.log(`${this.name} - ${element}`);
}, obj1);
/*
kim - 0
kim - 1
kim - 2
kim - 3
kim - 4
kim - 5
kim - 6
kim - 7
kim - 8
kim - 9
kim - 10
*/
arr.forEach(function(element){
console.log(`${this.name} - ${element}`);
}, obj2);
/*
park - 0
park - 1
park - 2
park - 3
park - 4
park - 5
park - 6
park - 7
park - 8
park - 9
park - 10
*/
forEach의 callback에서 this에 대한 참조를 사용할 수 있는데, thisArg의 callback의 this가 된다.