JS 표준 빌트인 객체와 래퍼 객체

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

  • 표준 빌트인 객체
  • 호스트 객체
  • 사용자 정의 객체

자바스크립트 객체의 분류

  • 표준 빌트인 객체(standard built-in objects / native objects / global objects)
    • ECMAScript 사양에 정의된 객체를 말한다.
    • 애플리케이션 전역의 공통 기능을 제공한다.
    • 자바스크립트 실행 환경(브라우저 또는 Node.js 환경)과 관계없이 언제나 사용할 수 있다.
    • 표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공된다.
    • 별도의 선언없이 전역 변수처럼 언제나 참조할 수 있다.
  • 호스트 객체(host objects)
    • ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가적으로 제공하는 객체를 말한다.
    • 브라우저 환경: DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web worker와 같은 클라이언트 사이드 Web API를 호스트 객체로 제공
    • Node.js 환경: Node.js 고유의 API를 호스트 객체로 제공
  • 사용자 정의 객체(user-defined objects)
    • 표준 빌트인 객체와 호스트 객체처럼 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체를 말한다.

표준 빌트인 객체

자바스크립트는 Object, String, Number, Boolean, Symbol, Date, Math, RegExp, Array, Map/Set, WeakMap/WeakSet, Function, Promise, Reflect, Proxy, JSON, Error 등 40여개의 표준 빌트인 객체를 제공한다.

  • Math, Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는 생성자 함수 객체.
  • 생성자 함수 객체인 표준 빌트인 객체 는 프로토타입 메소드와 정적 메소드를 제공
    • 생성자 함수로 호출하여 인스턴스를 생성할 수 있다.
    • 표준 빌트인 객체의 prototype 프로퍼티에 바인딩된 객체는 다양한 기능의 메소드를 제공한다.
    • 인스턴스 없이도 호출 가능한 정적 메소드도 제공한다.
    • 표준 빌트인 객체인 Number는 인스턴스 없이 정적으로 호출할 수 있는 정적 메소드도 제공한다.
  • 생성자 함수 객체가 아닌 표준 빌트인 객체 는 정적 메소드만을 제공

원시값과 래퍼 객체

원시값을 객체처럼 사용하면 자바스크립트 엔진은 암묵적으로 연관된 객체를 생성하고 생성된 객체로 프로퍼티에 접근하거나 메소드를 호출하고 다시 원시값으로 되돌린다.

  • 문자열, 숫자, 불리언 값 이외의 원시값은 레퍼 객체를 생성하지 않는다.
  • 일반적으로 표준 빌트인 객체가 제공하는 프로토타입 메소드를 사용하려면 반드시 인스턴스를 생성하고 인스턴스로 프로토타입 메소드를 호출해야 한다.

래퍼 객체
문자열, 숫자, 불리언 값에 대해 객체처럼 접근하면 생성되는 임시 객체


REFERENCE
https://poiemaweb.com

  • © 2020-2025 404 Not Found
  • Powered by Hexo Theme Ayer