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
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.