Javascript : class instantiation with json Javascript : class instantiation with json json json

Javascript : class instantiation with json


Using Object.assign() and object destructuring with default parameters in the constructor, you can achieve this quite easily:

class House {  static get defaultAddress () {    return {      number: null,      street: null,      zipcode: null,      town: null    }  }  static get defaultAccess () {    return {      doorcode: null,      stair: null    }  }  constructor({ address = House.defaultAddress, access = House.defaultAccess } = {}) {    this.clear()    Object.assign(this.address, address)    Object.assign(this.access, access)  }  clear () {    const { defaultAddress, defaultAccess } = House    Object.assign(this, { address: defaultAddress, access: defaultAccess })  }}// no objectconsole.log(new House())// empty objectconsole.log(new House({}))// partial objectconsole.log(new House({ address: { number: 1, street: 'street', zipcode: 12345, town: 'town' } }))// empty sub-objectsconsole.log(new House({ address: {}, access: {} }))// partial sub-objectsconsole.log(new House({ address: { number: 1, street: 'street' }, access: { doorcode: 321 } }))// complete objectconsole.log(new House({ address: { number: 1, street: 'street', zipcode: 12345, town: 'town' }, access: { doorcode: 321, stair: 3 } }))
.as-console-wrapper{min-height:100%!important}