[JS] 객체 메소드

2022. 1. 24. 20:10Javascript/개념

1. Object.assign : 객체 복제 

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

const cloneUser = Object.assign({}, user)  // { ...user } 같다
cloneUser.name = 'jin'

console.log(user)      // { name: 'min', age: 30 }
console.log(cloneUser) // { name: 'jin', age: 30 }

assign({}  <= 여기서 빈 객체는 초깃값이다. 두번째 매개변수에서 들어온 객체들이 초깃값에 병합된다.

 { } + { name : 'min', age : 30 } 

 

** assign : (일·책임 등을) 맡기다[배정하다/부과하다], 선임하다.

 

 

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

const cloneUser = Object.assign({job : 'dev'}, user);


console.log(user)      // { name: 'min', age: 30 }
console.log(cloneUser) // { job: 'dev', name: 'min', age: 30 }

직업을 가진 객체와 user가 병합되어 총 3개의 프로퍼티를 가진 객체가 된다.

 

 

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

const cloneUser = Object.assign({ name: 'jin'}, user);


console.log(user)      // { name: 'min', age: 30 }
console.log(cloneUser) // { name: 'jin', age: 30 }

만약 key 가 같다면 덮어씌기가 된다. 

 

 

 

2. Object.freeze  :  객체가 변하지 않도록 

객체

const data = {
    a: 123
}

data.a = 456;

console.log(data) // 456  객체 값을 바꿀 수가 있음.

Object.freeze(data); // freeze : 변하지 않도록 immutable 하게 만듬.
data.a = 123; // data를 바꿀려는 시도

console.log(data); // 456 data 안변한다.

배열

let arr = [1, 2];
Object.freeze(arr);

arr[0] = 3;

console.log(Object.isFrozen(arr)); // true
console.log(arr); // [1, 2]

 

3. Object.isFrozen

freeze()를 사용하여 변경할 수 없는 상태인지 여부를 확인하기 위해서 만들어진 메소드.

isFrozen()은 불리언 값을 반환하며 freeze()된 경우 true를 아닌 경우 false를 반환

 

 

4. Object.keys : key 배열 반환

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

const key = Object.keys(user);

console.log(user) // { name: 'min', age: 30 }
console.log(key)  // [ 'name', 'age' ]

 

 

 

4. Object.values : value 값 배열 반환

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

const value = Object.values(user);

console.log(user)  // { name: 'min', age: 30 }
console.log(value) // [ 'min', 30 ]

 

 

6. Object.entries : key/value 배열 반환

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

const arr = Object.entries(user);

console.log(user) // { name: 'min', age: 30 }
console.log(arr) // [ [ 'name', 'min' ], [ 'age', 30 ] ]

2차원 배열 !

 

** entries : 입수

 

 

7. Object.fromEntries : key/value 배열을 객체로 

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

const arr = Object.entries(user);
const obj = Object.fromEntries(arr);

console.log(user) // { name: 'min', age: 30 }
console.log(arr) // [ [ 'name', 'min' ], [ 'age', 30 ] ]
console.log(obj) // { name: 'min', age: 30 }

'Javascript > 개념' 카테고리의 다른 글

[JS] 전개 연산자 Spread Operator  (0) 2022.01.25
[JS] Math  (0) 2022.01.24
[JS] 데이터 속성 (data-xxx)  (0) 2022.01.10
[JS] 동작원리 (Stack, Queue, event loop)  (0) 2022.01.04
[JS] fill  (0) 2022.01.03