Computer Science/JavaScript

자바스크립트 Chapter 18 Object.create and Object.assign

Write and Remember 2019. 5. 11. 18:40

 

모든 자바스크립트 개발자가 알아야 하는 33가지 개념

 

Chapter 18 Object.create and Object.assign

 

이번 장에서는 Object 메서드 create(), assign()을 살펴보자

 

Object.create()

 

기존 객체를 새로 만든 객체의 프로토타입으로 사용하여 새 객체를 만든다.

 

const original = {
  name: 'any'
}

const copy = Object.create(original)
copy.name // any

original.hasOwnProperty('name') // true
copy.hasOwnProperty('name') // false

 

hasOwnProperty 메서드는 객체가 지정된 속성(property)을

 

자신의 속성으로 상속하는지 여부를 나타내는 boolean을 반환한다.

 

즉 위의 결과처럼,

 

original 객체가 copy의 프로토타입(prototype)으로 사용된다.

 

Object.assign()

 

다른 객체의 속성(property)을 복사해서 새로운 객체를 생성한다.

 

const original = {
  name: 'any',
  color: 'red'
}

const copy = Object.assign({}, original);

copy.name = 'change'

original.name; // any
copy.name; // change

 

복사한 새로운 객체(copy)의 속성(property)을 수정해도

 

원본 객체에는 영향이 가지 않는다.