본문 바로가기
Computer Science/JavaScript

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

by Write and Remember 2019. 5. 11.

 

모든 자바스크립트 개발자가 알아야 하는 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)을 수정해도

 

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

댓글0