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 => ({}));
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);
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!