J'ai créé un objet et l'a attribué à 3 variables comme si SO a également essayé p> alors j'ai essayé d'ajouter un clé de l'une des variables. Cette clé n'est spécifique que sur cette variable et le reste de l'objet est identique pour toutes les variables. P> longChartOptions.aspectRatio = 3;
3 Réponses :
Faites une fonction qui renvoie l'objet et appelez cette fonction lors de la définition de chaque variable:
scatterOptions = { /* ... */ }; longChartOptions = scatterOptions; // references same object barChartOptions = longChartOptions; // references same object // so in the end, scatterOptions === barChartOptions
Vous pouvez utiliser l'opérateur de répandre pour copier un objet à une autre variable.
var barChartOption = {...longChartOptions} = {...scatterOptions} = { legend: { display: false }, scales: { // ... } };
Le problème est que toutes les variables sont pointées sur le même bloc de mémoire. Vous pouvez utiliser l'opérateur ES6 Spread qui créera des instances différentes.
var barChartOptions, longChartOptions, scatterOptions; {...barChartOptions} = {...longChartOptions} = {...scatterOptions} = { legend: { display: false }, scales: { ... } };
En JavaScript lorsque vous définissez un objet égal à un autre, vous ne créez une référence que sur l'objet, pas une copie.