window 객체
는 브라우저를 가리키는 객체로 브라우저가 브라우저가 제공하는 기본 객체와 함수들은 대부분 window 객체 안에 들어 있습니다. document 객체나 console 객체도 실제로는 winsow.document, window.console이다. window가 생략이 가능하기 때문에 document와 console로만 적는 것이다.
this는 기본으로 window 객체를 가리키지만, 객체에서 this를 사용할 때는 해당 객체를 가리키게 된다. 참고로 this는 처음부터 결정되어 있다기보다는 함수가 호출될 때 결정이 된다.
fuction a( ){
console.log(this);
};
a( ); //window 객체
const b = {
name: '제로초',
sayName() {
console.log(this === b);
}
};
b.sayName( ); //true
//객체에서 this를 사용할 때는 해당 객체를 가리킨다.
//엄밀히 말하면 **객체.메서드**를 해야지만 this가 그 객체가 된다.
const b2 = b.sayName;
b2(); //false
//this는 기본적으로 window에 있다고 생각하면 된다.