Passe por valor (mais ou menos) em AngularJS por copy () ing

Recentemente, um colega perguntou sobre a passagem por valor, em vez da passagem funky do JavaScript por algo (ou seja, para um objeto, por valor, mas esse valor é em si uma referência).

Passar por valor para um objeto é mais ou menos fazer uma cópia.

Angular fornece angular.copy(source[, destination])que criará uma cópia detalhada da fonte – encontre a documentação aqui

Além disso, se você quiser comparar duas coisas para ver se elas são realmente iguais (ou seja, um igual profundo que irá ignorar coisas de valor / referência), então use angular.equals()e essa documentação está aqui

Como sempre, uma cópia profunda / igual é exatamente isso: profunda. Portanto, tente não comparar objetos enormes.

No final do dia, minha colega encontrou uma maneira melhor de atingir seu objetivo final – saber angular.copy()disso provavelmente resultaria em uma solução pior.