개발자 공부/✏️ 자바스크립트 공부
자바스크립트 new Object() vs 객체 리터럴({})
유정♡
2025. 5. 8. 14:13
new Object()와 {}는 자바스크립트에서 객체를 생성하는 두 가지 방법 !
기능은 거의 똑같지만, 표현 방식과 실제 사용 시점에서 차이가 존재
✅ 1. 기본 형태 비교
방식 | 문법 | 설명 |
생성자 방식 | new Object() | Object 생성자를 이용해 객체 생성 |
리터럴 방식 | {} | 객체를 직접 표현하는 가장 간단한 방법 |
✅ 2. 실제 예제 비교
🔸 new Object() 사용
let person = new Object();
person.name = "유정";
person.age = 25;
🔸 객체 리터럴 {} 사용
let person = {
name: "유정",
age: 25
};
-> 결과적으로 둘 다 똑같은 객체를 만듦
console.log(person.name); // "유정"
console.log(person.age); // 25
✅ 3. 동적으로 속성 추가하기 (두 방식 모두 동일하게 가능)
let obj1 = new Object();
let obj2 = {};
obj1["city"] = "서울";
obj2["city"] = "부산";
console.log(obj1.city); // "서울"
console.log(obj2.city); // "부산"
✅ 4. 내부적으로 어떻게 작동할까?
let a = {}; // 리터럴 방식
let b = new Object(); // 생성자 방식
console.log(typeof a); // object
console.log(typeof b); // object
console.log(a.constructor === Object); // true
console.log(b.constructor === Object); // true
둘 다 결국 Object 생성자를 기반으로 만들어짐
✅ 5. 실무에서는 ?
{} | ✅ 대부분의 상황에서 사용 |
new Object() | ❌ 특별한 이유 없으면 안 씀 |
📌 이유:
- 코드가 짧고 가독성 좋음 ({}가 더 직관적임)
- JS 엔진이 최적화하기 쉬움
- 다른 기본형 생성자들과 헷갈릴 수 있음 (new String(), new Number() 등은 예외 많음)
🔚 결론 요약
비교 항목 | {} 객체 리터럴 | new Object() 생성 |
코드 간결함 | ✅ 간단함 | ❌ 길고 복잡 |
사용 빈도 | ✅ 거의 항상 | ❌ 특별한 경우에만 |
기능 차이 | ❌ 없음 | ❌ 없음 (기본 동작 동일) |
추천 여부 | ✅ | ❌ |
728x90