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()
- 주어진 객체 자신만의 열거가능하거나 열거불가능한 속성들의 이름을 포함하는 배열(array)을 반환합니다.
Object.getOwnPropertySymbols()
- 주어진 객체에서 바로 찾을 수 있는 모든 심볼 속성을 배열로 반환합니다.
Object.getPrototypeOf()
- 명시된 객체의 프로토타입을 반환.
Object.is()
- 두 값이 같은지를 비교합니다. 모든 NaN 값은 같다고 처리됩니다.(다른 추상적 또는 엄격한 등호 비교에서는 다르게 처리됩니다)
Object.isExtensible()
- 객체의 확장이 가능한지 확인합니다.
Object.isFrozen()
- 객체가 프리징 되었는지 확인합니다.
Object.isSealed()
- 객체가 실링(seal) 되었는지 확인합니다.
Object.keys()
- 주어진 객체 자신의 열거가능한 속성들의 이름의 배열을 반환합니다.
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__
- 객체가 초기화될 때 프로토타입으로 사용된 객체를 가리킵니다.
Object.prototype.__noSuchMethod__
정의되지 않은 객체 멤버가 메소드로서 호출될 때 실행되는 함수를 정의하는 데 쓰였지만 제거되었습니다.Object.prototype.__count__
사용자 정의 객체 상에 직접 있는 열거가능 속성의 수를 반환하는 데 쓰였지만 제거되었습니다.Object.prototype.__parent__
객체 문맥을 가리키는 데 쓰였지만 제거되었습니다.
메서드
Object.prototype.__defineGetter__()
- 함수를 속성에 연결합니다, 접근했을 때 그 함수를 실행해 그 결과값을 반환하는.
Object.prototype.__defineSetter__()
- 함수를 속성에 연결합니다, 설정했을 때 그 속성을 수정하는 함수를 실행하는.
Object.prototype.__lookupGetter__()
__defineGetter__()
메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.Object.prototype.__lookupSetter__()
__defineSetter__()
메소드에 의해 지정된 속성과 관련된 함수를 반환합니다.Object.prototype.hasOwnProperty()
- 객체가 지정된 속성을 프로토타입 체인을 통해 상속되지 않은 그 객체의 직접 속성으로 포함하는지를 나타내는 boolean을 반환합니다.
Object.prototype.isPrototypeOf()
- 지정된 객체가 이 메소드가 호출된 객체의 프로토타입 체인 내에 있는지를 나타내는 boolean을 반환합니다.
Object.prototype.propertyIsEnumerable()
- 내부 ECMAScript [[Enumerable]] attribute가 설정된 경우를 나타내는 boolean을 반환합니다.
Object.prototype.toSource()
- 이 메소드가 호출된 객체를 나타내는 객체 리터럴의 출처를 포함하는 문자열을 반환합니다; 새로운 객체를 만들기 위해 이 값을 쓸 수 있습니다.
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