--- title: Object slug: Web/JavaScript/Reference/Global_Objects/Object tags: - Constructor - JavaScript - Object - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Object ---
{{JSRef}}

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

구문

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

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

매개변수

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

설명

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

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

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

Object 생성자의 속성

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

Object 생성자의 메서드

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

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

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

속성

{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', '속성') }}

메서드

{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', '메서드') }}

예제

undefinednull을 지정

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

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

ObjectBoolean 객체 생성하기

다음 예제는 변수 o에 {{jsxref("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.
{{SpecName('ES5.1', '#sec-15.2', 'Object')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-object-objects', 'Object')}} {{Spec2('ES6')}} Added Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf, Object.is
{{SpecName('ESDraft', '#sec-object-objects', 'Object')}} {{Spec2('ESDraft')}} Added Object.entries, Object.values and Object.getOwnPropertyDescriptors.

브라우저 호환성

{{Compat("javascript.builtins.Object")}}

같이 보기