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.