Maison > interface Web > js tutoriel > Comment les constantes JavaScript peuvent-elles être modifiées si elles sont immuables ?

Comment les constantes JavaScript peuvent-elles être modifiées si elles sont immuables ?

Susan Sarandon
Libérer: 2024-11-30 01:04:12
original
419 Les gens l'ont consulté

How Can JavaScript Constants Be Modified If They're Immutable?

Idée fausse sur l'objet constant en JavaScript

Malgré la référence aux spécifications ES6 qui mettent l'accent sur l'immuabilité des constantes, JavaScript permet des actions apparemment contradictoires sur des objets constants. Lors de l'attribution d'une valeur différente à un objet constant, celle-ci reste inchangée, mais l'ajout ou la suppression d'éléments au sein de l'objet est apparemment possible.

Comprendre la sémantique constante

Selon la documentation MDN, "une constante ne peut pas changement par réaffectation » et « constante ne peut pas être redéclarée ». Fondamentalement, cela implique que la référence à l’objet est constante, et non à l’objet lui-même. Vous ne pouvez pas attribuer un nouvel objet à la variable constante, mais vous pouvez modifier le contenu de l'objet.

Exemple : Modification d'un tableau

Considérez l'extrait de code suivant :

const myArray = [];
myArray.push(1);
console.log(myArray); // Output: [1]
Copier après la connexion

Dans ce cas, la référence au tableau myArray reste inchangée car elle pointe toujours vers le même objet tableau. Cependant, l'opération push() ajoute un élément au tableau, modifiant son contenu mais ne violant pas la sémantique constante.

Exemple : Ajout de propriétés à un objet

De même, vous pouvez ajouter des propriétés à un objet constant sans modifier la référence :

const myObject = {};
myObject.foo = 'bar';
console.log(myObject); // Output: {foo: "bar"}
Copier après la connexion

Attentes vs Réalité

Il est important de distinguer entre réaffectation et modification. Alors que la réaffectation crée une nouvelle référence, la modification opère sur la même référence d'objet. Dans le cas d'objets constants, la réaffectation est interdite pour garantir l'immuabilité, tandis que la modification du contenu de l'objet est toujours autorisée.

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