¿Existe una forma a nivel de idioma de clonar en profundidad un objeto de JavaScript que sea compatible con los navegadores principales (de escritorio y móviles)? He visto que eval(uneval(o)); no es estándar.
JSON.parse(JSON.stringify(o)); se ve feo En primer lugar, no es necesario 'enredar' de manera fundamental. Simplemente copie los bytes del objeto a otro lugar en la RAM. Cualquier cosa que se haga por encima de esto me parece una ineficiencia.
Me sorprende ver que no existe este tipo de funcionalidad en varios idiomas...
Todos los objetos son en realidad clones de sus respectivos prototipos ...
Hay una razón por la que tenemos constructores de objetos . Significado :: Puede escribir un constructor de objetos y clonarlo tantas veces como sea necesario.
Por supuesto, esta puede no ser la forma de "nivel de idioma" que espera, pero realmente, esa es la forma real de procedimiento en que se supone que se crean los objetos de JavaScript.
No hacemos eso porque JavaScript es un lenguaje relajado, destinado a ser amigable para los programadores y no un dolor en el trasero como lo están tratando de hacer, por lo que olvidamos nuestros modales.
Sin embargo, escribir constructores para Objetos profundos no es una tarea fácil. -Pero estoy bastante seguro de que no es tan imposible.