Tengo problemas para copiar mi objeto que tiene una función en sí mismo. vea el código a continuación y luego la explicación del problema.
const obj1 = {...object1}; const obj2 = {...object2}; const obj3 = {...object3}; const parentObj = { id: "123", name: "foo", nestedObj: [obj1, obj2, obj3], somefunc(){ return obj1.value + obj2.value + obj3.value } }Mi forma de copiar este objeto...
const copyObj = { ...parentObj, nestedObj: parentObj.nestedObj.map(obj=>{ return{ ...obj } }) }El problema de arriba es el siguiente:
¿Hay alguna manera de vincular la función con el parentObj recién copiado?
Si somefunc se llama como copyObj.somefunc() de tal manera que this valor corresponde al objeto al que llama el método, entonces funcionará cuando defina somefunc de la siguiente manera:
somefunc(){ return this.nestedObj.reduce((sum, obj) => sum + obj.value, 0); } Entonces, si ahora nestedObj tiene los objetos que realmente desea usar, somefunc producirá la suma esperada, siempre que se llame al objeto contenedor correcto.