objeto copiar angularjs underscore.js

angularjs - copiar - copy angular js



¿Debo usar Angular.copy() o_.clone()? (2)

Estoy trabajando en un proyecto que tiene Angular y Subrayado como una dependencia.

Cuando necesito crear una copia de un objeto, dependiendo de mi estado de ánimo en ese momento, podría usar angular.copy() o _.clone()

Se me ocurre que uno de estos métodos es probablemente más rápido / confiable / robusto que el otro.

¿Existe algún problema conocido con alguna de estas funciones que lo haga mejor o peor que el otro, suponiendo que ambas bibliotecas ya estén incluidas?


Tuvimos algunos informes de errores que confirman que el uso de angular.copy crea objetos vacíos en algunos teléfonos móviles con Windows. Por lo tanto, si necesita admitir cualquier versión de IE en un dispositivo móvil, ¡no use angular.copy! Supuestamente este error ha sido corregido por microsoft, pero sin embargo tuvimos que lidiar con eso ...

En realidad, también puedes usar Object.assign() ...

Documentos: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

Otros ejemplos: https://googlechrome.github.io/samples/object-assign-es6/

Sé que no dice IE, pero lo probé en mi IE11 y funciona ...


En relación con su pregunta: angular.copy y _.clone son diferentes. No se trata de cuál es mejor, se trata de lo que necesita como @Kevin B declaró en los comentarios.

angular.extend () por otro lado, es una copia superficial similar a _.clone

Angular.copy vs Angular.extend

En cuanto a rendimiento, no estoy seguro de cuál es mejor, pero por cuestiones de opinión, me opongo a incluir bibliotecas en el alcance global (guión bajo) con cualquier aplicación angular, ya que generalmente estas cosas se escriben como módulos angulares . angular.copy / angular.extend ganaría en este caso.

Copia superficial / profunda :

Es muy simple que si el objeto tiene solo campos primitivos, entonces obviamente irá por una copia superficial, pero si el objeto tiene referencias a otros objetos, entonces, en base al requerimiento, copia superficial o copia profunda debe ser elegido. Lo que quiero decir es que, si las referencias no se modifican en cualquier momento, entonces no tiene sentido recurrir a la copia en profundidad. Puedes simplemente optar por una copia superficial. Pero si las referencias se modifican a menudo, entonces necesita obtener una copia en profundidad. Una vez más, no hay una regla dura y rápida, todo depende del requisito.

Source