WEB/JavaScript

[JavaScript] 객체 메소드(Object methods)

developer of the night sky 2024. 1. 9. 17:50

객체 메소드

 

1. Object.assign()

객체 복제

 

user를 복사하고 싶다고 그냥 cloneUser에 대입해서 될까?

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

    const cloneUser = user;

 

답은 '아니다'

user 변수에는 객체 자체가 들어가 있는 것이 아니라, 객체가 저장되어 있는 메모리 주소인 객체에 의한 참조값이 저장된다.

그러므로 cloneUser에는 데이터가 들어가지않고 참조값이 들어간다.

 

Object.assign() 사용

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

 

이렇게 사용해야 newUser에 user의 값들이 복제된다.

 

 

병합1

const newUser2 = Object.assign({gender:'female'}, user)

 

user 객체에 gender: 'female' 프로퍼티가 추가된 newUser2가 생성된다.

 

병합2

    const user = {
        name : 'susukkang'
    }

    const info1 = {
        age : 27
    }

    const info2 = {
        gender : 'female'
    }

    const data = Object.assign(user, info1, info2)

 

세가지 객체를 모두 합친 data 객체를 생성할 수 있다.

 

2. Object.keys()

키 배열 반환

    const user = {
        name : 'susukkang',
        age : 27,
        gender : 'female'
    }

    Object.keys(user)

 

키들을 배열로 만들어 반환한다.

// ["name", "age", "gender"]

 

 

3. Object.values()

값 배열 반환

    const user = {
        name : 'susukkang',
        age : 27,
        gender : 'female'
    }

    Object.values(user)

 

값들을 배열로 만들어 반환한다.

// ["Mike", 27, "female"]

 

 

4. Object.entries()

    const user = {
        name : 'susukkang',
        age : 27,
        gender : 'female'
    }

    Object.entries(user)

 

키와 값을 쌍으로 묶어 배열로 반환한다.

[
    ["name", "susukkang"],
    ["age", 30],
    ["gender", "female"]
]

 

 

5. Object.fromEntries()

    const arr = 
    [
        ["name", "susukkang"],
        ["age", 30],
        ["gender", "female"]
    ]

 

키/값 배열을 객체로 만들어준다.

{
    name: 'susukkang',
    age: 27,
    gender: 'female'
}