240722 객체 생성/접근/메소드

신한별·2024년 7월 22일

💪 매일 기록

목록 보기
22/97

객체 란 key와 value의 페어로 하나의 변수에 여러개의 값을 넣을 수 있다.

1. 객체 생성 방법

1-1. 기본적인 객체 생성 방법

let person = {
  name : "홍길동",
  age : 30,
  gender : "남자" 
};

1-2. 생성자 함수를 이용한 객체 생성 방법

function Person (name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}

let person1 = new Person("홍길동",30,"남자");
let person2 = new Person("홍길순",48,"여자");

2. 접근방법

console.log(person.name); // 홍길동 
console.log(person.age); // 30 
console.log(person.gender); // 남자 

3. 객체 메소드 (객체가 가진 여러 기능 : Object.~)

3-1. Object.key() : 키를 가져오는 메소드
let keys = Object.keys(person);
console.log(keys); // [ 'name', 'age', 'gender' ]
3-2. Object.values() : values 가져오는 메소드
let values = Object.values(person);
console.log(values); // [ '홍길동', 30, '남자']
3-3. Object.entries() : key와 value 를 묶어서 배열로 만든 배열 (2차원 배열)
let entries = Object.entries(person);
console.log(entries); // [ [ 'name', '홍길동' ], [ 'age', 30 ], [ 'gender', '남자' ] ]
3-4. Object.assign() : 객체 복사
let newPerson = {};
Object.assign(newPerson, person); 
// Object.assign (어디에 복사할지, 뭘 복사할지)
console.log(nerPerson); // { name: '홍길동', age: 30, gender: '남자' }

Object.assign(newPerson, person, { age : 31 }); // 중괄호를 통해 age 값만 변경해서 복사
console.log(nerPerson); // { name: '홍길동', age: 31, gender: '남자' }
3-5. 객체 비교

객체는 메모리에 저장할 때 별도의 공간에 저장
-> 그에 대한 주소 값을 각각 가지고 있음 : string, number 처럼 ===로 단순 비교 불가능

let person10 = {
  name : "홍길동",
  age : 30,
  gender : "남자"
}

let person11 = {
  name : "홍길동",
  age : 30,
  gender : "남자"
}

console.log(person10 === person11); // false 
// JSON.stringify 문자열로 바꿔줌 
console.log(JSON.stringify(person10)===JSON.stringify(person11)); // true
3-6. 객체 병합

spread operator !!

let person12 = {
  name : "홍길동",
  age : 30
};

let perosn13 = {
  gender : "남자"
};

// ... : spread operator
let perfectMan = {...person12, ...perosn13};
console.log(perfectMan); // { name: '홍길동', age: 30, gender: '남자' }
  

for- ~in문 으로 접근

객체의 속성을 출력

let person = {
  name : "John",
  age : 30,
  gender : "male"
};

for (let key in person) {
    console.log(key + " : " + person[key]);
}
// name : John
//age : 30
// gender : male

0개의 댓글