<h1>문제8 : 객체의 키 이름 중복</h1>
<div>
자바스크립트 객체를 다음과 같이 만들었다.
출력값을 입력하시오. (출력값은 공백을 넣지 않습니다. )
</div>
let d = {
'height':180,
'weight':78,
'weight':84,
'temperature':36,
'eyesight':1
};
console.log(d['weight']); // 84 출력
console.log(d.height); // 84 출력
자바스크립트 객체란?
자바스크립트에서 객체는 키(key)-값(value) 쌍으로 이루어진 데이터 구조야. 객체를 사용하면 여러 데이터를 하나로 묶어서 관리할 수 있다.
const person = {
name: "홍길동",
age: 25,
greet: function() {
console.log(`안녕! 나는 ${this.name}이야.`);
}
};
console.log(person.name); // "홍길동"
console.log(person.age); // 25
person.greet(); // "안녕! 나는 홍길동이야."
** 클래스 없이도 객체를 만들 수 있음
const car = {
brand: "Tesla",
model: "Model S",
drive: function() {
console.log("부릉부릉~🚗");
}
};
car.drive(); // "부릉부릉~🚗"
ES6부터는 class를 지원하기 때문에, 자바처럼 클래스를 만들 수도 있다.
class Car {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
drive() {
console.log(`${this.brand} ${this.model}가 달립니다!`);
}
}
const myCar = new Car("Hyundai", "Sonata");
myCar.drive(); // "Hyundai Sonata가 달립니다!"
동적 속성 추가 가능
자바스크립트 객체는 동적으로 속성을 추가/삭제할 수 있어.
자바에서는 클래스에 정의된 필드만 가질 수 있지만, JS 객체는 자유롭게 속성을 추가할 수 있어.
const person = { name: "홍길동" };
person.age = 25; // 동적으로 속성 추가
console.log(person.age); // 25
delete person.age; // 속성 삭제
console.log(person.age); // undefined
프로토타입 기반 상속
자바는 클래스 기반 상속을 사용하지만, 자바스크립트는 프로토타입 기반 상속을 사용해!
객체가 다른 객체를 상속받을 때, prototype을 이용해 기능을 확장할 수 있어.
const animal = {
makeSound: function() {
console.log("동물이 소리를 낸다!");
}
};
const dog = Object.create(animal);
dog.makeSound(); // "동물이 소리를 낸다!"
자바스크립트 객체의 다양한 생성 방법
(1) 객체 리터럴 방식 (가장 많이 사용!)
const person = {
name: "홍길동",
age: 30
};
(2) 생성자 함수 (ES6 이전)
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = new Person("철수", 25);
console.log(person1.name); // "철수"
(3) class 문법 (ES6 이후)
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const person2 = new Person("영희", 28);
console.log(person2.name); // "영희"
(4) Object.create()
const basePerson = { greet: function() { console.log("Hello!"); } };
const newPerson = Object.create(basePerson);
newPerson.greet(); // "Hello!"
결론!
✅ 자바스크립트(JavaScript): 객체 리터럴을 사용해 바로 만들 수 있음.
✅ 동적으로 속성을 추가/삭제할 수 있음.
✅ 클래스(class)를 지원하지만, 기존에는 프로토타입 기반 상속을 사용함.
**위 포스팅은 챗GPT 답변을 기반으로 작성되었습니다!
'JavaScript' 카테고리의 다른 글
[JS] 코딩테스트 012 - Class 클래스 (0) | 2025.02.16 |
---|---|
[JS] 코딩테스트 009 - concat (1) | 2025.02.16 |
[JS] 코딩테스트 007 - 변수선언 (0) | 2025.02.16 |
[JS] 코딩테스트 005 - FOR문~ 반복문***(중요) (0) | 2025.02.15 |
[JS] 코딩테스트 004 - JS 변수타입 (0) | 2025.02.15 |