Object

Object 생성자는 객체 래퍼(wrapper)를 생성합니다.

구문

// 객체 초기자 또는 리터럴
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }

// 생성자
new Object([value])

매개변수

nameValuePair1, nameValuePair2, ... nameValuePairN
콜론으로 나뉘어져 있는 키(문자열)와 값(어떤 값이나 가능)의 쌍.
value
아무 값.

설명

Object 생성자는 주어진 값의 객체 래퍼를 생성합니다. 주어진 값이 null이거나 undefined면 빈 객체를 생성해 반환하고, 그렇지 않으면 값에 맞는 자료형의 객체를 반환합니다. 만약 값이 이미 객체이면 그 값을 그대로 반환합니다.

생성자가 아닌 맥락에서 호출하면 Object는 new Object()와 동일하게 동작합니다.

객체 초기자(리터럴 구문)도 참고하세요.

Object 생성자의 속성

Object.length
1의 값을 가집니다.
Object.prototype
Object 형의 모든 객체에 속성을 추가할 수 있습니다.

Object 생성자의 메서드

Object.assign()
하나 이상의 원본 객체들로부터 모든 열거가능한 속성들을 대상 객체로 복사합니다.
Object.create()
주어진 프로토타입(prototype)의 객체와 속성들을 갖고 있는 새 객체를 생성합니다.
Object.defineProperty()
주어진 기술자(descriptor)에 의해 기술된(described) 이름붙은 속성을 객체에 추가합니다.
Object.defineProperties()
주어진 기술자들에 맞는 이름붙은 속성들을 객체에 추가합니다.
Object.freeze()
객체를 프리징(freeze)합니다. 즉, 다른 곳의 코드에서 객체의 속성을 지우거나 바꿀 수 없습니다.
Object.getOwnPropertyDescriptor()
객체의 이름붙은 속성의 기술자를 반환합니다.
Object.getOwnPropertyNames() (en-US)
주어진 객체 자신만의 열거가능하거나 열거불가능한 속성들의 이름을 포함하는 배열(array)을 반환합니다.
Object.getOwnPropertySymbols() (en-US)
주어진 객체에서 바로 찾을 수 있는 모든 심볼 속성을 배열로 반환합니다.
Object.getPrototypeOf()
명시된 객체의 프로토타입을 반환.
Object.is()
두 값이 같은지를 비교합니다. 모든 NaN 값은 같다고 처리됩니다.(다른 추상적 또는 엄격한 등호 비교에서는 다르게 처리됩니다)
Object.isExtensible()
객체의 확장이 가능한지 확인합니다.
Object.isFrozen()
객체가 프리징 되었는지 확인합니다.
Object.isSealed()
객체가 실링(seal) 되었는지 확인합니다.
Object.keys() (en-US)
주어진 객체 자신의 열거가능한 속성들의 이름의 배열을 반환합니다.
Object.preventExtensions()
객체가 확장되는 것을 못하도록 합니다.
Object.seal()
다른 코드가 객체의 속성을 삭제하지 못하도록 합니다.
Object.setPrototypeOf()
프로토타입(즉, 내부의 [[Prototype]] 속성)을 설정합니다.
Object.values()
주어진 객체의 열거가능한 모든 스트링 속성들의 값들을 포함하고 있는 배열을 반환합니다.

Object 인스턴스와 Object 프로토타입 객체

JavaScript에서 모든 객체들은 Object의 자손입니다. 모든 객체는 Object.prototype으로부터 메서드와 속성을 상속하는데, 나중에 덮어 쓸 수도 있습니다. 예를 들어, 다른 생성자의 프로토타입은 그 constructor 속성을 덮어쓰고 자신의 toString() 메소드들을 제공합니다. Object 프로토타입 객체에 대한 변경 내용은  그 변경 내용에 영향을 받는 속성들과 메소드들이 프로토타입 체인(chain)을 따라 더이상 무시되지 않는한,  모든 객체들로 전달됩니다.

속성

Object.prototype.constructor
객체의 프로토타입을 생성하는 함수를 지정합니다.
Object.prototype.__proto__ (en-US) This API has not been standardized.
객체가 초기화될 때 프로토타입으로 사용된 객체를 가리킵니다.
Object.prototype.__noSuchMethod__ This is an obsolete API and is no longer guaranteed to work.
정의되지 않은 객체 멤버가 메소드로서 호출될 때 실행되는 함수를 정의하는 데 쓰였지만 제거되었습니다.
Object.prototype.__count__ This is an obsolete API and is no longer guaranteed to work.
사용자 정의 객체 상에 직접 있는 열거가능 속성의 수를 반환하는 데 쓰였지만 제거되었습니다.
Object.prototype.__parent__ This is an obsolete API and is no longer guaranteed to work.
객체 문맥을 가리키는 데 쓰였지만 제거되었습니다.

메서드

Object.prototype.__defineGetter__() This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
함수를 속성에 연결합니다, 접근했을 때 그 함수를 실행해 그 결과값을 반환하는.
Object.prototype.__defineSetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
함수를 속성에 연결합니다, 설정했을 때 그 속성을 수정하는 함수를 실행하는.
Object.prototype.__lookupGetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
__defineGetter__() 메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.
Object.prototype.__lookupSetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
__defineSetter__() (en-US) 메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.
Object.prototype.hasOwnProperty()
객체가 지정된 속성을 프로토타입 체인을 통해 상속되지 않은 그 객체의 직접 속성으로 포함하는지를 나타내는 boolean을 반환합니다.
Object.prototype.isPrototypeOf()
지정된 객체가 이 메소드가 호출된 객체의 프로토타입 체인 내에 있는지를 나타내는 boolean을 반환합니다.
Object.prototype.propertyIsEnumerable()
내부 ECMAScript [[Enumerable]] attribute가 설정된 경우를 나타내는 boolean을 반환합니다.
Object.prototype.toSource() (en-US) This API has not been standardized.
이 메소드가 호출된 객체를 나타내는 객체 리터럴의 출처를 포함하는 문자열을 반환합니다; 새로운 객체를 만들기 위해 이 값을 쓸 수 있습니다.
Object.prototype.toLocaleString()
toString()을 호출합니다.
Object.prototype.toString()
객체의 문자열 표현을 반환합니다.
Object.prototype.unwatch() This API has not been standardized.
객체 속성에서 감시점을 제거합니다.
Object.prototype.valueOf()
지정된 객체의 원시값을 반환합니다.
Object.prototype.watch() This API has not been standardized.
객체 속성에 감시점을 추가합니다.
Object.prototype.eval() This is an obsolete API and is no longer guaranteed to work.
지정된 객체의 문맥에서 JavaScript 코드 문자열을 평가하는 데 쓰였지만 제거되었습니다.

예제

undefinednull을 지정

다음 예제는 변수 o에 빈 Object 객체를 저장합니다.

var o = new Object();
var o = new Object(undefined);
var o = new Object(null);

ObjectBoolean 객체 생성하기

다음 예제는 변수 oBoolean 객체를 저장합니다.

// o = new Boolean(true)과 같음
var o = new Object(true);
// o = new Boolean(false)과 같음
var o = new Object(Boolean());

명세

Specification Status Comment
ECMAScript 1st Edition. Standard Initial definition. Implemented in JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Object' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object' in that specification.
Standard Added Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf, Object.is
ECMAScript (ECMA-262)
The definition of 'Object' in that specification.
Living Standard Added Object.entries, Object.values and Object.getOwnPropertyDescriptors.

브라우저 호환성

BCD tables only load in the browser

같이 보기