네이티브 객체 & 호스트 객체

자바스크립트 객체는 크게 3가지 객체로 분류할 수 있다.

  • 네이티브 객체
  • 호스트 객체
  • 사용자 정의 객체

네이티브 객체

ECMAScript에 명세된 객체를 말한다. 자바스크립트 런타임과 관계없이 어떤 환경에서든 사용 가능한 객체를 말한다. 예시로 Object, String, Function, Array, RegExp, Date, Math와 같은 객체가 있다.

각 네이티브 객체는 각자의 프로퍼티와 메소드를 갖는다.

원시 타입과 Wrapper Object

const str = 'hello world'
const res = str.toUpperCase()
console.log(res) // HELLO WORLD

const num = 1.5
console.log(num.toFixed()) // 2

위 코드를 보면 원시 타입 값에 대해 표준 Built-In-Object의 메소드를 호출하면 정상적으로 작동한다.

그 이유는 원시 타입 값에서 표준 빌트인 객체의 메소드를 호출하면 원시 타입 값은 연관된 객체(Wrapper 객체)로 일시 변환 되기 때문에 가능하다. 메소드의 호출이 종료되면 객체로 변환된 원시 타입 값은 다시 원시 타입 값으로 복귀 한다. Wrapper 객체에는 String, Number, Boolean이 있다.

호스트 객체

호스트 겍체는 호스트 환경에 정의된 객체를 말한다. 예를 들어 브라우저에서 동작하는 환경과 브라우저 외부에서 동작하는 환경의 자바스크립트(NodeJS)는 다른 호스트 객체를 사용할 수 있다.

브라우저에서 동작하는 환경의 호스트 객체는 전역객체인 window, BOM, DOM, 및 XMLHttpRequest 같은 객체가 있다.

전역객체

브라우저 사이드는 window, 서버 사이드는 global 이다.

BOM (Brower Object Model)

브라우저 객체 모델은 브라우저 탭 또는 브라우저 창의 모델을 생성한다. 최상위 객체는 window 객체로 현재 브라우저 창 또는 탭을 표현하는 객체이다. 또한 이 객체의 자식 객체들은 브라우저의 다른 기능을 표현한다. 이 객체들은 Standard Built-in Object가 구성된 후에 구성된다.

image

DOM

웹 페이지를 프로그래밍 적으로 다루기 위한 객체 모델이다. 최상위 객체는 document이다. 이 객체의 자식 객체들은 문서의 다른 요소들을 표현한다. 이 객체도 Standard Built-in Object가 구성된 후에 구성된다.

image

Reference

https://poiemaweb.com/js-built-in-object


Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook