Maison > interface Web > js tutoriel > Pourquoi Array.prototype.fill() crée-t-il des références d'objets partagés et comment puis-je l'éviter ?

Pourquoi Array.prototype.fill() crée-t-il des références d'objets partagés et comment puis-je l'éviter ?

DDD
Libérer: 2024-12-18 17:46:14
original
678 Les gens l'ont consulté

Why Does Array.prototype.fill() Create Shared Object References, and How Can I Avoid It?

Array.prototype.fill() Référence au lieu de créer une nouvelle instance

Lors de la tentative d'initialisation d'un tableau à l'aide de Array.prototype.fill( ), le comportement peut être inattendu lorsque la valeur de remplissage est un objet. Dans ce cas, les références au même objet sont stockées dans chaque élément du tableau, conduisant à un partage involontaire des propriétés et du comportement.

Pour résoudre ce problème, il est recommandé d'utiliser des méthodes alternatives comme map() pour créer de nouvelles instances d'objets pour chaque élément du tableau. Ceci peut être réalisé en remplissant d'abord le tableau avec une valeur arbitraire, puis en mappant chaque élément sur un nouvel objet :

var arr = new Array(2).fill().map(u => ({}));
Copier après la connexion

Vous pouvez également utiliser Object() comme mappeur pour créer un nouvel objet pour chacun. élément du tableau :

var arr = new Array(2).fill().map(Object);
Copier après la connexion

En employant ces techniques, vous pouvez vous assurer que chaque élément du tableau rempli est un objet indépendant, éliminant ainsi les problèmes potentiels liés aux références partagées.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal