●Object.create()
- 주어진 프로토타입의 객체와 속성들을 갖고 있는 새 객체를 생성한다. 각각 프로퍼티의 속성들까지 넣어줄 수 있다.
let coffee = Object.create(Object.prototype, {
name: {
value: 'Americano',
writable: true,
configurable: true,
enumerable: true,
},
price: {
value: 4100,
writable: true,
configurable: true,
enumerable: true,
},
get: {
value: function() {
return this.name;
}
},
set: {
value: function(name) {
this.name = name
}
}
})
console.log(coffee)
// { name: 'Americano', price: 4100 }
●Object.assign()
- 하나 이상의 원본 객체들로부터 모든 열거가능한 속성들을 대상 객체로 복사한다. 아래와 같이 그냥 변수에 다른 객체를 할당하면 복제되어 원본 객체가 수정되면, 참조을 복사한 변수도 같이 수정된다. 즉 같은 메모리 주소를 참조하고 있기 때문에 그냥 같다고 볼 수 있다.
var user ={
name : "mike",
age : 30
}
var cloneUser = user; // 객체주소 참조값이 복사된다. -> 서로 공유한다. 진정한 복사 X
// gender 라는 프로퍼티를 추가한다.
user.gender = "male"
console.log(user)
// {name: 'mike', age: 30, gender: 'male'}
console.log(cloneUser)
{name: 'mike', age: 30, gender: 'male'}
- 아래는 assign 메서드를 활용한 예시를 볼 수 있다.
var user ={
name : "mike",
age : 30
}
// 참조값이 다르게 복사하기 (빈 객체를 열고, 뒤에오는 인수에 복제할 객체를 넣어준다.)
var cloneUser2 = Object.assign({}, user);
console.log(cloneUser2);
// { name: 'mike', age: 30 }
// 다른 프로퍼티를 추가해 복사할 객체와 합쳐주기
var cloneUser3 = Object.assign({gender: 'male'}, user);
console.log(cloneUser3)
// { gender: 'male', name: 'mike', age: 30 }
// 복사할 객체에 다른 값 대체해서 합쳐주기
var cloneUser4 = Object.assign({name: 'James'}, user);
console.log(cloneUser4);
// { name: 'James', age: 30 }
const user = { name : "Mike" }
const age_info = { age : 30 }
const gender_info = { gender : "male" }
//여러가지 객체들을 모두 합쳐서 한 객체로 만들기
var cloneUser5 = Object.assign(user, age_info, gender_info);
console.log(cloneUser5);
// { name: 'Mike', age: 30, gender: 'male' }
●Object.keys()
- 객체의 키만 담은 배열을 반환해준다.
const numbers = {
a : 1,
b : 2,
c: 3,
}
let array = Object.keys(numbers);
console.log(array)
// 배열로 반환
// [ 'a', 'b', 'c' ]
●Object.values()
- 객체의 값만 담은 배열을 반환해준다.
const numbers = {
a : 1,
b : 2,
c: 3,
}
let array = Object.values(numbers);
console.log(array)
// 배열로 반환
// [ 1, 2, 3 ]
●Object.entries()
- 객체의 키와 값을 담은 배열을 반환해준다.
const numbers = {
a : 1,
b : 2,
c: 3,
}
let array = Object.entries(numbers);
console.log(array)
// 배열로 반환
// [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
●Object.fromEntries()
- [키, 값] 형태의 배열을 객체로 반환해준다.
const numbers = {
a : 1,
b : 2,
c: 3,
}
let array = Object.entries(numbers);
console.log(array)
// 배열로 반환
// [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
let returnArray = Object.fromEntries(array);
console.log(returnArray);
// { a: 1, b: 2, c: 3 }