[JS] Object, Object methods

Yoon·2021년 7월 25일
0

Javascript

목록 보기
5/8

Object(객체)

  • 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다.
    프로퍼티의 값으로 함수가 올 수도 있는데 이러한 프로퍼티를 메소드(method)라고 한다.

  • property 값에는 어느 type이나 가능하다.(string, numberm array, object, function..)

  • 객체의 프로퍼티 참조 방법

    객체이름.프로퍼티이름
    or
    객체이름["프로퍼티이름"]

    //메소드 참조
    객체이름.메소드이름()

  • 예제

var person = {
    name: "홍길동",      // 이름 프로퍼티
    birthday: "010101",  // 생년월일 프로퍼티
    pId: "1234567",      // 개인 id 프로퍼티
    fullId: function() { // 생년월일과 id를 합쳐서 주민등록번호를 반환.
        return this.birthday + this.pId;
    }
};
person.name    // 홍길동
person["name"] // 홍길동
person.fullId() // 0302191234567

Object Methods

const user = {
    name: 'Mike',
    age:30
}

1. Object.assign() : 객체 복제

const cloneUser = user;

=> 이렇게 사용하면 안된다.
객체가 복사되는 것이 아니라 참조값이 복사되어 cloneUser가 변경되면 원래객체user도 같이 변경된다. 즉, 동일한 객체로 보는 것이다.

const newUser = Object.assign({},user);

{} 빈 객체는 초기값,
{}+{name : 'Mike', age:30} = 빈객체에 user가 병합된다.
newUser 와 user는 같은 객체가 아니다.

Object.assign({name:'Tom'},user);

똑같은 변수가 초기값으로 오면 덮어쓴다.
name:'Tom'을 덮어써서 name: 'Mike'가 된다.
대신, 새로운 변수가 초기값으로 오면 추가된다.

  • 두개 이상의 객체 병합
const user = {
    name : 'Mike'
}
const info1 = {
    age: 30,
}
const info2 = {
    gender : 'male',
}
Object.assign(user,info1,info2)//user에 info1,info2합쳐짐

2. Object.keys() : 키 배열 반환

Object.keys(user);
//["name","age"]

3. Object.values(): 값 배열 반환

Object.values(user);
//["Mike","30"]

4. Object.entries(): 키와 값을 모두 배열로 반환(쌍으로 묶어 '배열로 반환')

Object.entries(user);
//["name","Mike"],["age",30]

5. Object.fromEntries(): 키와 값 배열을 '객체로 반환'

const arr = [
    ["name","Mike"],
    ["age",30],
    ["gender","male"]
];
Object.fromEntries(arr);
// {
//     name: 'Mike',
//     age:30,
//     gender:'male',
// }
profile
FE Developer✨

0개의 댓글