(1) this를 그냥 호출하거나, 함수 내부에서 console 로 this를 출력하면 window 객체가 출력됩니다.

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 객체에 저장되게 됩니다.

(2) this를 객체 내부 메소드에서 사용하면

const obj = {
	name : "상훈",
	function() {
		console.log(this);
 }
};

obj.function() // {name : '상훈', function : f _function()}

위와 같은 형태로 this를 메소드에서 출력하면 객체 자신을 가리키게 됩니다.

위와 같은 두 예시를 보면 this는 자신을 소유하고 있는 ‘주인’ 을 가리키게 됩니다.

callThis() 는 window객체에 저장되므로 this가 윈도우 객체를 가리키게 되며,

obj객체의 내부 메소드에서 this는 자신의 주인인 obj를 가리키게 됩니다.