javascript - ES6(4) Object


Object create

const healthObj = {
  showHealth : function(){
    console.log(this.healthTime)
  }
}
const myHealth = Object.create(healthObj)
myHealth.healthTime = "4"
myHealth.name="dongha"

console.log(myHealth) // { healthTime: '4', name: 'dongha' }
new演算子ではなくオブジェクト.createを使用してオブジェクトを作成できます.

createの欠点は、プロトタイプに基づいてオブジェクトを作成し、プロパティを個別に追加する必要があることです.assignを使用すると改善できます.

Object assign

const healthObj = {
  showHealth : function(){
    console.log(this.healthTime)
  }
}

const myHealth = Object.assign(Object.create(healthObj), {
  name: "dongha",
  lastTime: "11:20"
})

console.log(myHealth) // { name: 'dongha', lastTime: '11:20' }
assignは、オブジェクトのプロトタイプをパラメータとして使用し、2番目のプロパティにプロパティを与えることができます.
const previousObj = {
name: "dongha",
lastTime:"11:23"
}

const myHealth = Object.assign({}, previousObj, {"lastTime" : "12:30"})

console.log(myHealth)  // { name: 'dongha', lastTime: '12:30' }
assignは、最初のパラメータとオブジェクト、および変更するプロパティを追加することによって、空のオブジェクトを変更できます.

setPrototypeOf

const healthObj = {

showHealth : function(){
  console.log(`${this.time}`)
  },
setTime : function(_time){
  this.time = _time
  }
}

const myHealth = {
  name: "dongha",
  lastTime:"33:22"
}

Object.setPrototypeOf(myHealth, healthObj)
setPrototypeOf、プロトタイプオブジェクトとして指定できます.
ソース:
https://www.inflearn.com/course/es6-%EA%B0%95%EC%A2%8C-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8/lecture/7019?speed=1.5&tab=note