Technology/JAVA Script 언어
07. JAVA Script 기본 문법 (7) - 객체
Ermael Starius
2023. 7. 10. 15:24
// 객체
//
// => 하나의 클래스 인스턴스로써 { } 로 묶여있고, key & value 쌍으로 속성값을 나타내는 코드형태.
//
// => 하나의 객체변수 안에는 여러개의 속성값을 지정할 수 있다.
//
//
// 1. 객체생성방법
//
// 1-1. 기본적인 객체생성 방법
//
let person = {
name: "홍길동",
age: 30,
gender: "남자",
key: true,
function: function Sum(num1, num2) {
return num1 + num2;
},
Array: arr = ["사과", "배", "포도"],
hobby: {
1: "축구",
2: "농구",
3: "배구",
4: "야구",
5: "피구",
},
};
//
//
// 1-2. 생성자 함수를 이용한 객체생성 방법
//
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
let person_01 = new Person("흰둥이", 3, "강아지");
let person_02 = new Person("짱구", 5, "남자");
let person_03 = new Person("철수", 5, "남자");
let person_04 = new Person("훈이", 5, "남자");
let person_05 = new Person("맹구", 5, "남자");
let person_06 = new Person("유리", 5, "여자");
let person_07 = new Person("수지", 5, "여자");
console.log(person_01);
console.log(person_02);
console.log(person_03);
console.log(person_04);
console.log(person_05);
console.log(person_06);
console.log(person_07);
//
//
// 2. 객체접근방법
//
// 1-1. 기본적인 객체접근 방법
//
console.log("1", person.name);
console.log("2", person.age);
console.log("3", person.gender);
console.log("4", person.key);
console.log("5", person.function(10,20));
console.log("6", person.Array);
console.log("7", person.hobby);
//
//
// 3. 객체 메소드(= 객체가 가진 여러가지 기능들: Object.~~~)
//
// 3-1. Object.keys(객체) => key 값을 가져오는 메소드
//
let keys = Object.keys(person);
console.log("key 값 :", keys);
//
// 3-2. Object.values(객체) => value 값을 가져오는 메소드
//
let values = Object.values(person);
console.log("value 값 :", values);
//
// 3-3. 엔트리(Entries) : Object.entries(객체)
//
// => 엔트리란, key 값과 value 값을 서로 묶어서 배열로 만든 배열이다. (2차원 배열)
//
let entries = Object.entries(person);
console.log("entries 값 :", entries);
//
// 3-4. 어싸인(Assign) : Object.assign(해당값, 복사대상)
//
// => 어싸인이란, 객체를 복사해주는 메소드이다.
//
let newPerson = {};
Object.assign(newPerson, person);
console.log("person 값 :", person);
console.log("newPerson 값 :", newPerson);
let Another = {};
Object.assign(Another, person, {name: "홍길순"},{age: 25}, {gender: "여자"});
console.log("Another 값 :", Another);
//
// 3-5. 객체비교 : JSON.stringify(객체)
//
// => 객체는 데이터 크기가 매우 크다. 따라서 메모리에 저장 시 별도의 공간에 저장한다. 객체이름에는 해당 공간의 주소값이 들어간다.
//
// => 따라서, Man_01 와 Man_02 는 서로 다른 주소값을 의미하므로 서로 같지 않다.
//
// => 결국 두 객체를 비교하기 위해서는 JSON.stringify() 메소드를 사용하여 문자열화 시킨 후에 비교한다.
//
let Man_01 = {
name: "철수",
age: 15,
gender: "남자",
};
let Man_02 = {
name: "철수",
age: 15,
gender: "남자",
};
console.log("일반 객체비교(true: 같다/ false: 다르다) :", Man_01 === Man_02);
console.log("JSON 객체비교(true: 같다/ false: 다르다) :", JSON.stringify(Man_01) === JSON.stringify(Man_02));
//
// 3-6. 객체병합 : Spread Operator(...객체이름)
//
// => 두 객체를 병합하는 메소드. 스프레드 연산자.
//
let Woman_DATA_01 = {
name: "영희",
age: 15,
};
let Woman_DATA_02 = {
gender: "여자",
};
let Woman = {...Woman_DATA_01, ...Woman_DATA_02};
console.log(Woman);