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
Libérer: 2024-11-29 01:13:10
original
508 Les gens l'ont consulté

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
Copier après la connexion
const y = [];
y.push('foo'); // Appends an element to an existing array
Copier après la connexion

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
Copier après la connexion
const y = ['foo'];
const y = ['bar']; // Error: Re-declaring a constant
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal