javascript - array - jquery copy to clipboard




Was ist der Unterschied zwischen angular.copy() und einer Zuweisung(=)? (3)

Einfach

angular.copy() ist dasselbe wie .clone() von jquery, das dieselbe Objektkopie mit dept erstellt und zurückgibt. (call by value)

= es weist den Wert mit seinem Referenzwert zu (call by reference),

a = b in diesem Fall wird a ein b Wert zugewiesen, aber wenn sowohl a b Array sind, werden Änderungen in a in b und umgekehrt.

Ich möchte einige Werte zuweisen, wenn ein Schaltflächenklickereignis über den Ereignisparameter erfolgt:

$scope.update = function(context) {
    $scope.master = context;
};

Ich habe $scope.master user $scope.master .

Jetzt angular.copy() ich angular.copy() . Also habe ich den Code mit angular.copy() .

$scope.update = function(context) {
    $scope.master = angular.copy(context)
};

Beide tun dasselbe, also was ist der Unterschied? Erzählen Sie mir bitte den Unterschied zwischen angular.copy() und equal(=) .


Wenn Sie primitive Typen (wie int) in Javascript angular.copy , entsprechen = und angular.copy den Zuweisungen und kopieren den Wert der Variablen.

Wenn Sie Objekte in Javascript angular.copy , = weisen Sie der Variablen einen Verweis auf das vorhandene Objekt zu, und angular.copy kopiert. angular.copy bedeutet, dass Sie ein neues Objekt mit denselben Eigenschaften und Werten erstellen und den neuen Objektverweis der Variablen zuweisen.


= stellt eine Referenz dar, während angular.copy() ein neues Objekt als tiefe Kopie erstellt.

Die Verwendung von = würde bedeuten, dass das Ändern einer context die entsprechende Eigenschaft von $scope.master oder umgekehrt.

Mit angular.copy() die beiden Objekte getrennt bleiben und Änderungen würden sich nicht gegenseitig widerspiegeln.







angularjs