Tengo un json con el siguiente formato:
let js = { "a": 1, "b": [ { "h": "example", "v": 12 }, { "h": "example1", "v": 23 } ] }Tengo una clase que toma este json del constructor y lo convierte en una instancia de esta clase:
class A{ constructor (json){ Object.assign(this, json) } }Esto funciona bien con:
a = new A(js) console.log(fa) Tengo una segunda clase que tiene el formato de la lista interna b :
class B { construtor(json){ Object.assign(this, json) } } ¿Cómo puedo instanciar la clase B del objeto pasado a A para que fb[0] y fb[1] sean del tipo B ?
prueba esto,
let js = { "a": 1, "b": [{ "h": "example", "v": 12 }, { "h": "example1", "v": 23 } ] } class A { constructor(json) { // create a new b array with instances of class B. json.b = json.b.map(json => new B(json)) Object.assign(this, json) } } class B { constructor(json) { Object.assign(this, json) } } const a = new A(js); console.log({a}); console.log('is ab[0] instance of class B?', ab[0] instanceof B)