Object
Object 생성자는 객체 래퍼(wrapper)를 생성합니다.
구문
// 객체 초기자 또는 리터럴
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }
// 생성자
new Object([value])매개변수
nameValuePair1, nameValuePair2, ... nameValuePairN- 콜론으로 나뉘어져 있는 키(문자열)와 값(어떤 값이나 가능)의 쌍.
value- 아무 값.
설명
Object 생성자는 주어진 값의 객체 래퍼를 생성합니다. 주어진 값이 null이거나 undefined면 빈 객체를 생성해 반환하고, 그렇지 않으면 값에 맞는 자료형의 객체를 반환합니다. 만약 값이 이미 객체이면 그 값을 그대로 반환합니다.
생성자가 아닌 맥락에서 호출하면 Object는 new Object()와 동일하게 동작합니다.
객체 초기자(리터럴 구문)도 참고하세요.
Object 생성자의 속성
Object.length- 1의 값을 가집니다.
Object.prototypeObject형의 모든 객체에 속성을 추가할 수 있습니다.
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)- 객체가 초기화될 때 프로토타입으로 사용된 객체를 가리킵니다.
Object.prototype.__noSuchMethod__정의되지 않은 객체 멤버가 메소드로서 호출될 때 실행되는 함수를 정의하는 데 쓰였지만 제거되었습니다.Object.prototype.__count__사용자 정의 객체 상에 직접 있는 열거가능 속성의 수를 반환하는 데 쓰였지만 제거되었습니다.Object.prototype.__parent__객체 문맥을 가리키는 데 쓰였지만 제거되었습니다.
메서드
Object.prototype.__defineGetter__()- 함수를 속성에 연결합니다, 접근했을 때 그 함수를 실행해 그 결과값을 반환하는.
Object.prototype.__defineSetter__()(en-US)- 함수를 속성에 연결합니다, 설정했을 때 그 속성을 수정하는 함수를 실행하는.
Object.prototype.__lookupGetter__()(en-US)__defineGetter__()메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.Object.prototype.__lookupSetter__()(en-US)__defineSetter__()(en-US) 메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.Object.prototype.hasOwnProperty()- 객체가 지정된 속성을 프로토타입 체인을 통해 상속되지 않은 그 객체의 직접 속성으로 포함하는지를 나타내는 boolean을 반환합니다.
Object.prototype.isPrototypeOf()- 지정된 객체가 이 메소드가 호출된 객체의 프로토타입 체인 내에 있는지를 나타내는 boolean을 반환합니다.
Object.prototype.propertyIsEnumerable()- 내부 ECMAScript [[Enumerable]] attribute가 설정된 경우를 나타내는 boolean을 반환합니다.
Object.prototype.toSource()(en-US)- 이 메소드가 호출된 객체를 나타내는 객체 리터럴의 출처를 포함하는 문자열을 반환합니다; 새로운 객체를 만들기 위해 이 값을 쓸 수 있습니다.
Object.prototype.toLocaleString()toString()을 호출합니다.Object.prototype.toString()- 객체의 문자열 표현을 반환합니다.
Object.prototype.unwatch()- 객체 속성에서 감시점을 제거합니다.
Object.prototype.valueOf()- 지정된 객체의 원시값을 반환합니다.
Object.prototype.watch()- 객체 속성에 감시점을 추가합니다.
Object.prototype.eval()지정된 객체의 문맥에서 JavaScript 코드 문자열을 평가하는 데 쓰였지만 제거되었습니다.
예제
undefined와 null을 지정
다음 예제는 변수 o에 빈 Object 객체를 저장합니다.
var o = new Object();
var o = new Object(undefined);
var o = new Object(null);
Object로 Boolean 객체 생성하기
다음 예제는 변수 o에 Boolean 객체를 저장합니다.
// 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