본문 바로가기
WEB/JavaScript

전역객체와 this

by 노랑파랑 2016. 10. 13.
반응형

전역객체(Global Object)란  window 객체로 모든 객체가 소속된 객체이고, 창이나 프레임을 의미한다.

전역객체

* 위 그림처럼 alert window.alert의 결과는 같다. 이는 alert가 window 객체의 메소드이기 때문이다.

* 객체를 만든다는 것은 window 객체의 프로퍼티를 만드는 것과 같은 것 !

  즉, 전역변수와 함수가 사실은 window 객체의 프로퍼티와 메소드라는 것이다.  

* 이러한 특성을 ECMAScript에서는 Global 객체라고 부른다. 이 Global 객체는 호스트 환경에 따라서

 이름이 다르고 하는 역할이 조금씩 다르다. 웹브라우저와 JavaScript에서 window객체는 전역객체이면서

 동시에 웹브라우저의 창이나 프레임은 제어하는 역할을 하고 Node.js에서는 window가 아닌 global이 전역객체이다.



this 

* this는 함수 내에서 함수 호출 맥락을 의미한다. 즉, 함수를 어떻게 호출하느냐에 따라 this가 가리키는 대상이 달라진다는 뜻이다.


1.  함수 호출

함수 호출1             함수 호출2


* [우측 그림] 함수 내에서 this는 전역객체 window와 같다. [좌측 그림] 객체 안의 메소드의 this는 그 객체를 가리킨다.

* 전역객체를 보면 알겠지만, [우측 그림]의 함수 func는 전역객체 window의 메소드이다.

  그 때문에 func()안의 this는 객체인 window를 가리키고 있는 것이다.


2.  생성자 호출

생성자 호출

* 함수 호출 시 this는 전역객체를 가리키고, 생성자는 빈 객체를 만들기 때문에 객체 내에서 만들어진 this는 만들어진 객체를 가리킨다.

* 생성자가 실행되기 전까지 객체는 변수에 할당될 수 없기 때문에 this가 아니면 객체에 대한 어떤 작업도 할 수 없다.






반응형

'WEB > JavaScript' 카테고리의 다른 글

prototype  (0) 2016.10.13
상속  (0) 2016.10.13
생성자  (0) 2016.10.13
arguments  (0) 2016.10.12
클로저  (0) 2016.10.12