LHJ

I'm a FE developer.

12-3. Global 오브젝트 / Global과 Window 관계

30 Nov 2020 » js_beginner

12-3. Global 오브젝트 / Global과 Window 관계

Global과 window 관계

  • 글로벌과 window 오브젝트 주체

    • 글로벌 오브젝트는 JS가 주체 (즉, 자바스크립트 스펙에 정리되어있음)
    • window 오브젝트는 window가 주체 (즉, 자바스크립트 스펙에 정리된 것이 아님)

  • 주체는 다르지만, 글로벌 오브젝트의 프로퍼티와 함수가 window 오브젝트에 설정됨

    • 일반적으로 Number에 속한 프로퍼티와 함수는 빌트인 Number 오브젝트에 설정되었습니다.
      그런데 글로벌 오브젝트는 실체가 없으므로 글로벌 오브젝트의 프로퍼티와 함수가 어딘가에 저장되어야 하는데 그것이 window 오브젝트라는 것입니다.

      따라서 글로벌 프로퍼티와 함수를 사용하려면 글로벌 오브젝트가 아닌 window 오브젝트를 사용해야됩니다.


  • Global과 window 오브젝트 관계


  • Host 오브젝트 개념 활용

이렇게 글로벌 오브젝트가 없는데도, 글로벌 오브젝트의 프로퍼티와 함수가 window 오브젝트에 설정될 수 있는 개념은 바로 Host 오브젝트 개념입니다.
브라우저 안에 있는 오브젝트를 자바스크립트에서 마치 내것처럼 쓰는 개념이죠.
이러한 Host 오브젝트 개념이 밑바탕에 깔려있기 때문에 이와 같은 처리가 가능한 겁니다.

즉, 글로벌 오브젝트의 3개의 프로퍼티와 9개의 함수를 window 오브젝트에다가 저장할 수가 있다는 거죠.
그리고 그것을 window 오브젝트를 통해서 끄집어내서 사용할 수가 있는 이러한 개념의 바탕에는 Host 오브젝트 개념이 있다라는 겁니다.