Maison >interface Web >js tutoriel >Pourquoi puis-je modifier un objet constant en JavaScript ?

Pourquoi puis-je modifier un objet constant en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-29 01:13:10591parcourir

Why Can I Modify a Constant Object in JavaScript?

Objets Const en JavaScript : compréhension des propriétés immuables

Malgré le mot-clé constant dans ES6, vous pouvez apparemment modifier des objets constants en JavaScript. Cela peut être déroutant, surtout si l’on considère l’affirmation d’immuabilité de la spécification. Alors, que se passe-t-il ?

Premièrement, comme le précise la documentation MDN, le mot-clé constant interdit la réaffectation et la re-déclaration de la constante elle-même. Cependant, lorsque vous modifiez un objet ou un tableau, vous ne le réaffectez ni ne le déclarez à nouveau. Au lieu de cela, vous manipulez simplement les propriétés de l'objet ou les éléments du tableau.

Considérez les exemples :

const x = {};
x.foo = 'bar'; // Adds a property to an existing object
const y = [];
y.push('foo'); // Appends an element to an existing array

Dans les deux cas, l'objet constant (x) et le tableau ( y) restent les mêmes références. Vous ne modifiez pas l'objet lui-même, mais vous ajoutez ou modifiez ses éléments. Ceci est autorisé car cela ne viole pas l'immuabilité de la référence constante.

Cependant, la réaffectation ou la re-déclaration est toujours empêchée :

const x = {};
x = {foo: 'bar'}; // Error: Reassigning a constant
const y = ['foo'];
const y = ['bar']; // Error: Re-declaring a constant

Par conséquent, même si vous pouvez modifiez les propriétés d'un objet constant ou les éléments d'un tableau constant, vous ne pouvez pas remplacer ou redéfinir la référence elle-même.

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!

Déclaration:
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