console.log(this) // window{...}
function callThis(){
console.log(this)
}
callThis() // window{....}
Q. window 란?
A. window 란 전역변수, 돔(DOM), 함수 등을 보관하고 있는 전역객체 입니다.
예로 만들지 않아도 사용할수 있었던 alert() 함수, dom id값을 선택하는 document.getElementById()
와 같은 함수들이 이미 window 객체에 내장되어 있어서 우리는 사용할수 있습니다.
callThis() 처럼 함수나, 변수 등을 선언하면 js 에서는 window 객체에 저장되게 됩니다.
const obj = {
name : "상훈",
function() {
console.log(this);
}
};
obj.function() // {name : '상훈', function : f _function()}
위와 같은 형태로 this를 메소드에서 출력하면 객체 자신을 가리키게 됩니다.
위와 같은 두 예시를 보면 this는 자신을 소유하고 있는 ‘주인’ 을 가리키게 됩니다.
callThis() 는 window객체에 저장되므로 this가 윈도우 객체를 가리키게 되며,
obj객체의 내부 메소드에서 this는 자신의 주인인 obj를 가리키게 됩니다.