728x90
const car = {
name: "KIA",
getName: function(){
console.log("car getNAme", this);
},
}
car.getName(); // {name: 'KIA' , getName: f }
getName은 function으로 찍혀 나온다
그렇지만
const globalCar = car.getName;
globalCar();
을 쓰게 되면
window{window: window, self: window, d ... }
이런식으로 나오게 된다
이유 car.getName()을 불렀을땐 car 안의 내용을 부른거지만
globalCar() 은 밖에서 호출된것이라서 누굴 불러오는지 멘션이 없기때문에 밖에서의 최상단은 window객체라서 그런거임
//그래서 this는 함수가 호출될때 결정이 된다
const car2 ={
name = 'hyndai',
getName: car.getName
};
car2.getName();
car2.getName(); // {name: 'hyndai' , getName: f }
이걸 보게되면 호출 하는 아이를 this로 잡는것이 보이는거임
this를 잡아주는 방법
728x90
댓글