Comment dupliquer avec précision des objets JavaScript
Les méthodes intégrées de JavaScript ne peuvent pas garantir la duplication précise des objets. Cela est dû à la présence de propriétés dérivées de prototypes et d'attributs cachés, qui peuvent conduire à des résultats imprévus lors du clonage. Pour résoudre ce problème, diverses approches ont été développées.
Mise à jour 2022 : clonage structuré
Une nouvelle norme JS appelée clonage structuré offre une solution simple. Il est pris en charge par de nombreux navigateurs modernes et permet une duplication précise avec la syntaxe suivante :
const clone = structuredClone(object);
Approche traditionnelle
Dans les versions précédentes de JavaScript, une fonction de clonage personnalisée peut être implémenté en suivant les étapes suivantes :
Un exemple de clonage La fonction qui répond à ces défis est fournie ci-dessous :
function clone(obj) { if (null == obj || "object" != typeof obj) return obj; // Handing different object types // ... implementation for Date, Array, and Object // Generic fallback: deep copy properties var copy = {}; for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; }
Cette fonction suppose que l'objet forme une structure arborescente et ne contient aucune référence cyclique. La gestion des structures cycliques nécessite une approche plus complexe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!