Javascript에서 this는 '누가 나를 불렀느냐'를 뜻한다고 합니다.
Javascript에서 this는 호출에 따라 가르키는 것이 달라짐을 의미합니다.
this는 함수를 호출할 때 결정되는 것이며, 전역범위 및 함수에서 사용될때는 전역객체인 window를 가르킨다. 객체에 속한 메소드에서 사용될때 그 메소드의 객체(점 앞에 명시된 객체)를 가르킨다. 객체에 속한 내부함수에서 사용될땐 전역객체를 가르킨다. 생성자에서 사용될때 생성자로 인해 생성된 새로운 객체를 가르킨다. 화살표 함수에서 this는 동적으로 바인딩 되지 않으며 항상 상위 스코프의 실행 컨텍스트를 따라간다.
var x = this;
console.log(x);
function myFunction() {
return this;
}
console.log(myFunction());
var num = 0;
function addNum() {
this.num = 100;
num++;
console.log(num); // 101
console.log(window.num); // 101
console.log(num === window.num); // true
}
addNum();