NATIVE

NATIVE

Editing
  • account_tree
  • bug_report

ObjectObject

Object 객체는 자바스크립트의 모든 객체에 상속하는 최상위 객체이다.

설명

원시 타입을 제외한 자바스크립트에서 다루는 데이터들은 모두 Object 객체를 상속받는 객체들이다. 하지만 원시 타입 데이터도 Object를 상속받는 각각의 래퍼(Wrapper) 객체가 존재해 실질적으로 모든 데이터들은 Object를 상속받는다고 할 수 있다.

하위 트리 탐색

  • Constructor

    객체를 생성하는 생성자이며 new 연산자를 이용한 인스턴스(Instance)  방식과 대입 방식인 리터럴(Lieteral)을 지원한다. ECMAScript는 리터럴(lieteral) 생성 패턴을 권장한다.

    • Object()

      일반적인 사용자 객체 데이터를 생성하는 생성자 함수이며 생성자 함수에 의해서 생성된 인스턴스(Instance)는 Object 객체의 [[Prototype]]을 상속받는다. 생성자 함수 자체는 Function 객체의 [[Prototype]]을 상속 받는다. 

  • [[Prototype]]

    • Methods

      • hasOwnProperty()

        객체가 특정 프로퍼티를 가지고 있는지를 블린(boolean) 값으로 반환한다.

      • isPrototypeOf()

        해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다.

      • propertyIsEnumerable()

        매개 변수의 속성이 열거가능(enumerable)한지 여부를 체크한다.

      • toLocaleString()

        객체를 나타내는 문자열을  작동하는 지역(locale)의 방식으로 출력이 된다.

      • toString()

        객체를 나타내는 문자열을 반환한다.

      • valueOf()

        객체의 원시(primitive) 값을 반환한다.

    • Properties

      • constructor

        객체의 생성자 함수를 참조한다.

      • __proto__

        상속된 [[Prototype]] 참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.

        현재는 표준 사양에 명시되었다.
  • Static

    정적(static) 멤버를 의미하며 인스턴스(instance)에 상속되어 사용할 수 없고 오로지 하위를 포함하여 객체(object) 또는 인터페이스(interface) 자신에서 해당 멤버에 접근이 가능하다. 

    • Methods

      • assign()

        열거가능(enumable)한 하나 이상의 소스(source) 오브젝트로부터 대상(target) 오브젝트로 프로퍼티를 복사한 후 대상(target) 오브젝트를 반환한다.

      • create()

        기존 객체를 프로토타입으로 사용하여 새로운 객체를 생성하여 반환한다.

      • defineProperties()

        첫 번째 인수로 지정된 객체의 두 개 이상의 프로퍼티의 명세를 새로 설정하여 반환한다.

      • defineProperty

        첫 번째 인수로 지정된 객체에 새로운 프로퍼티를 정의하거나 수정한 후 반환한다.

      • entries()

        객체의 정의된 순서에 따라 하나의 프로퍼티와 그 값을 각각 배열의 항목으로 담아 전체의 프로퍼티 수 만큼 원소를 갖는 배열로 반환한다.

      • freeze()

        객체에 대한 모든 변경을 금지시킨다.

      • fromEntries()

        키(key)-값(value)을 갖는 목록을 객체로 반환한다.

      • getOwnPropertyDescriptor()

        첫 번째 인수로 지정된 객체의 특정 프로퍼티에 대한 configurable, enumerable, value, writable, get, set 명세를 반환한다.

      • getOwnPropertyDescriptors()

        객체의 모든 프로퍼티에 대한 configurable, enumerable, value, writable, get, set 명세를 반환한다.

      • getOwnPropertyNames()

        모든 속성(Symbol을 사용하는 프로퍼티 제외, 열거 불가능한 프로퍼티 포함)를 배열로 반환한다.

      • getOwnPropertySymbols()

        객체 내에 존재하는 모든 심벌(Symbol) 프로퍼티를 배열로 반환한다.

      • getPrototypeOf()

        객체의 프로토타입([[Prototype]])을 반환한다.

      • is()

        매개 변수로 주어진 두 값이 같은 값인지 확인한다. '=='와 '===' 연산자의 결과가 다를 수 있으므로 아래의 기술 문서를 참조한다.

      • isExtensible()

        객체에 새로운 프로퍼티를 추가 가능한지에 대한 여부를 확인한다.

      • isFrozen()

        객체가 변경 불가능한 상태인지를 확인한다.

      • isSealed()

        객체의 쓰기 가능한  프로퍼티를 제외하고 변경 금지된 상태인지를 확인한다.

      • keys()

        객체의 열거가능한 프로퍼티와 메소드의 이름을 문자열 타입의 원소로 가진 배열로 반환한다.

      • preventExtensions()

        객체에 새로운 프로퍼티가 추가되는 것을 차단하여 확장을 막는다.

      • seal()

        객체에 새로운 프로퍼티를 추가할 수 없도록 하며 이미 존재하는 프로퍼티를 설정 불가능한 상태로 처리한다. 그러나 쓰기 가능한 프로퍼티의 값은 변경 불가 처리후에도 변경이 가능하다.

      • setPrototypeOf()

        대상 객체의 프로토타입([[Prototype]]) 객체를 다른 객체로 설정하거나 null로 설정한다.

      • values()

        객체의 열거가능한 프로퍼티 값을 원소로 가진 배열로 반환한다.

지원 웹브라우저