티스토리 뷰

전역객체(Global object)

  • 전역객체(Global object)는 특수한 객체다.
  • 모든 객체는 이 전역객체의 프로퍼티이다.
  • window ->전역객체의 이름은 호스트 환경에 따라 변경됩니다. node.js처럼 서버측 자바스크립트를 사용하게 되면 winow는 존재하지 않습니다. 대신 global이 존재합니다.// 웹브라우저의 window의 역할을 node에서 global이 하는 것이죠.

전역객체 API

  • ECMAScript 에서는 전역객체의 API를 정의해두었습니다. 그 외의 API는 호스트 환경에서 필요에 따라 추가하고 있습니다. 
  • 웹브라우저 자바스크립트에서는 alert()이라는 전역객체의 메소드가 존재하지만 node.js에서는 존재하지 않습니다. 

 function func() {
        alert("how are you today?");
      }
      func(); 
      // func() 는 사실 window 객체의 메소드이다. 편의상 생략되어 있을뿐 암시적으로 윈도우를 사용한다. 
      window.func();
  • window는 전역객체이기 때문에 생략해도 제대로 실행됩니다.(편의상 생략되어 있을뿐)
  • window.func() 에서 ()소괄호로 호출할 수 있다는 것은 func변수에 담긴 값이 함수(객체에서는 메소드)라는 의미이다.
  • 함수 앞에.(dot)이 있고 뭔가가 있다면 그것은 객체를 의미합니다. 
  • 프로그래밍에서 "암시적이다"의 의미 : 편의상 생략했을 때 기본적으로 무엇(전역객체)이 사용된다 라는 의미, 내부적으로 사용되는 것은 암시적인 무엇이라는 것
 const o = {
        func: function () {
          alert("hello this is a function!");
        },
      };
      o.func();
      window.o.func();
  • o라는 객체를 생성했다. o.func()와 window.o.func()는 모두 실행된다. 모든 전역변수와 함수는 사실 window 객체의 프로퍼티이고 자바스크립트에서 모든 객체 역시 기본적으로 전역객체(window)의 프로퍼티임을 알 수 있다. 

 

 

댓글