Quiero asignar algunos valores cuando ocurre un evento de clic de botón a través del parámetro de evento:
$scope.update = function(context) { $scope.master = context; }; He asignado valores de user a $scope.master .
Ahora estoy viendo angular.copy() . Así que escribí el código con angular.copy .
$scope.update = function(context) { $scope.master = angular.copy(context) }; Ambos están haciendo lo mismo, entonces, ¿cuál es la diferencia? Cuéntame sobre la diferencia entre angular.copy() y equal(=) .
Como se puede leer aquí, angular.copy() realiza una copia profunda (cf. "clon") del argumento, esencialmente creando un nuevo objeto, mientras que usar el operador de asignación = solo asigna referencias .
Por lo tanto, en el último caso, si va a cambiar algo en $scope.master , también cambiará el context .
Salud,
= representa una referencia mientras que angular.copy() crea un nuevo objeto como una copia profunda.
Usar = significaría que cambiar una propiedad de context cambiaría la propiedad correspondiente de $scope.master o viceversa.
Usando angular.copy() los dos objetos permanecerían separados y los cambios no se reflejarían entre sí.
Cuando manipula tipos primitivos (como int) en Javascript, = y angular.copy son los mismos que los resultados de cualquier asignación al copiar el valor de la variable.
Cuando manipula objetos en Javascript, = asigne una referencia al objeto existente a la variable y angular.copy está copiando, eso significa crear un nuevo objeto con las mismas propiedades y valores y asignar la referencia del nuevo objeto a la variable.