Ich benutze Angular.js 1.3.x. In früheren Versionen von Angular (einschließlich 1.3.0-beta5) würde der folgende Code die Eigenschaften des Prototyps direkt in das neue Objekt kopieren:
%Vor%In Angular.js 1.3.0+ sind die Eigenschaften des Prototyps jedoch vollständig verloren, obwohl Migrationsleitfaden für 1.2 bis 1.3 sagt:
Damit wird angular.copy so geändert, dass der Prototyp des ursprünglichen Objekts auf das kopierte Objekt angewendet wird. Zuvor würde angular.copy Eigenschaften der Prototypkette des Originalobjekts direkt auf das kopierte Objekt kopieren.
Wie behalte ich die Eigenschaften vom Prototyp?
Während der Kommentar im Commit, das mit verknüpft ist, im Migrationsleitfaden heißt:
Dies ändert
angular.copy
, so dass es den Prototyp des Originals anwendet Objekt für das kopierte Objekt.
Dies gilt nur, wenn das Zielargument für angular.copy(source, [destination]);
nicht angegeben ist. Wenn destination
angegeben wird, werden nur die direkten Eigenschaften des Objekts kopiert .
Die Lösung besteht darin, nur das Objekt source
für die Funktion angular.copy
bereitzustellen, wobei der Parameter destination
weggelassen wird:
Tags und Links javascript angularjs