Por lo general, hay dos formas de copiar un objeto. Por ejemplo, al usar el modelo C, una forma es devolver un nuevo objeto y la segunda forma es escribir datos en un objeto/dirección existente. Aquí hay dos formas de simular hacer eso en JS:
function copy_array(arr) { // copy array and return existing array const cp = []; for(let i=0; i < arr.length; i++) cp[i] = arr[i]; return cp; } function copy_to(arr, to_arr) { // copy to existing object // possible to write to a "reference object", something like `&to_arr` to_arr = [] for(let i=0; i < arr.length; i++) to_arr[i] = arr[i]; return to_arr; const c = ['a','b','c']; let arrc=copy_array(c); const x=[]; copy_to(c, x);¿Es posible copiar objetos de estas dos formas? ¿O no es posible copiar a un objeto/dirección de referencia?
Para un objeto, lo hace esencialmente de la misma manera, excepto que usa for (key in object) para iterar sobre los nombres de propiedad.
function copy_to(obj, to_obj) { for (let key in obj) { to_obj[key] = obj[key]; } return to_obj; }