this는 실행컨텍스트가 생성될 때 결정됨. 즉 함수를 호출할 때 결정된다.
전역 공간에서 this는 전역 객체를 가리킨다.
‘전역변수를 선언하면 자바스크립트 엔진은 이를 전역객체의 프로퍼티의 할당한다’
var a = 1;
console.log(a); //1
console.log(window a); //1
console.log(this a); //1
→ window의 프로퍼티에 직접 할당하더라도 결과적으로 var로 선언한 것과 같이 동작한다.
→전역 변수 선언 시 자바스크립트 엔진은 이를 전역 객체의 프로퍼티로 할당한다. → 자바스크립트의 모든 변수는 실행 컨텍스트 LexicalEnvironment의 프로퍼티로서 동작
함수를 실행하는 방법
차이점: 독립성 (함수는 독립적으로 지능을 수행하지만, 메서드는 자신을 호출한 대상 객체에 관한 동작을 수행한다.)