this 란 호출될때 결정 된다.
this는 여러 모습으로 변한다.
전역 공간에서의 this
메서드로서 호출할 때 내부에서의 this
함수로서 호출할 때 내부에서의 this
콜백 함수 호출 시 내부에서의 this
생성자 함수 내부에서의 this
this 란 호출 하는 자신을 가리킨다.
(객체가 될수도 엘리멘트가 될수도)
그럼 this를 하나로만 쓰고자 한다면?
bind 함수를 사용한다.
const car = {
name: "KIA",
getName: function () {
console.log(this);
}
}
const car2 = {
name: "hyundai",
getName: function () {
console.log(this);
}
}
const bind = car2.getName.bind(car)
bind를 찍어보면 car 에 대한 데이터가 리턴된다.
이렇게 bind로 디스를 고정 할 수 있다.
화살표 함수로 사용시 this는 함수가 속해있는 곳의 상위 this를 계승 받는다.
일반적인 this를 사용시 일반함수
함수 안의 함수 같은경우 화살표 함수를 사용하는 것이 좋다.