객체메소드

지환·2024년 6월 10일
0

자바스크립트

목록 보기
15/30

객체 메소드

let a = 'age';
const user = {
    name:'Mike',
    [a]:30,
    [1+4]:5,
    ['안녕'+'하세요']:'hello'
}

객체에서 사용할 수 있는 메소드


Object.assign()
Object.keys()
Object.values()
Object.entries()
Object.fromEntries()

Object.assign({},병합될객체)

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

const cloneUser = user; // 이렇게 하면 객체가 복사되는게 아니다. 

# user에는 객체 자체가 들어있는 게 아니라 객체가 저장되어 있는 메모리 주소인 객체에 대한 참조값이 저장되므로

# clonUser를 만들어서 user를 넣으면 객체가 복사되며 들어가는게 아니라 참조값만 복사

cloneUser.name = 'Tom'; // 이렇게 하면 name값이 변경된다.

그래서 Object.assign()이 필요함.

빈 객체는 초기값, 두번째 매개변수부터 들어온 값이 초기값에 병합됨

{} + {name:'Mike', age:30} = {name:'Mike', age:30}

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

newUser != user // 다르다.

첫 번쨰 인자가 빈 값이 아닌 경우

const newUser = Object.assign({gender:'Male'},user);
// {gender:'Male', name:'Mike', age:30} : 총 3개의 프로퍼티를 가지게 됨

병합을 하는데 키가 갖다면? 덮어쓰게 됨

// {name:'Mike', age:30}

const newUser = Object.assign({name:'Tom'},user); // user기준으로 덮어씌우게 됨.

두개 이상의 객체를 합쳐보자.

const user = {name : 'Mike'};
const info1 = {age:30};
const inof2 = {gender:'Male'};

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

Object.keys() ..etc 메소드

  • 키 배열 반환
const user = {
    name : 'Mike',
    age : 30,
    gender : 'male',
}

Object.keys(user);
["name","age","gender"]이 나옴

Object.values(user);
['Mike',30,'male']

Object.enteries(user); // 키/값 객체 --> 배열 반환
[
    ["name","Mike"],
    ["age", "30"],
    ["gender","male"]
    
]

Object.fromEnteries(); // 키&값 배열 --> 객체로 변환
{ 
    name : 'Mike',
    age : 30,
    gender : 'male'

}

실습

let n = 'name';
let a =  'age';

const user = {
    [n] : 'Mike',
    [a] : 30,
    [1+4] : 5
};

console.log(user);

function makeObj(key,val){
    return {
    [key] : val
}
}

const obj = makeObj('나이',33);

console.log(obj);
profile
아는만큼보인다.

0개의 댓글