Maison > interface Web > js tutoriel > Pouvez-vous modifier des objets constants en JavaScript ?

Pouvez-vous modifier des objets constants en JavaScript ?

Patricia Arquette
Libérer: 2024-12-02 00:33:10
original
398 Les gens l'ont consulté

Can You Modify Constant Objects in JavaScript?

La const perplexe : pourquoi vous pouvez (en quelque sorte) modifier des objets constants en JavaScript

Malgré la définition claire des constantes dans ECMAScript 6, où elles sont déclarées comme valeurs immuables qui ne peuvent pas être réaffectées ou redéclarées, de nombreux navigateurs prenant désormais en charge le mot-clé const semblent autoriser certaines modifications des objets constants.

Cette contradiction perçue découle des aspects techniques du comportement constant en JavaScript. Bien que vous ne puissiez pas réaffecter ou redéclarer directement une constante, vous pouvez modifier les propriétés d'un objet constant.

La raison en est que lorsque vous ajoutez ou supprimez des éléments d'un tableau, ou ajoutez ou modifiez des propriétés dans un objet, vous ne modifiez pas réellement la constante elle-même. Vous modifiez plutôt l'état interne de l'objet vers lequel pointe la constante.

Par exemple, dans le code suivant :

const yyy = [];
yyy.push(6);
yyy.push(1);
Copier après la connexion

yyy reste une référence au même tableau, mais le contenu de ce tableau change. De même, dans le code suivant :

const x = {};
x.foo = 'bar';
Copier après la connexion

x continue de faire référence au même objet, mais une nouvelle propriété, foo, est ajoutée à cet objet.

Il est donc possible de modifiez l'état des objets constants, mais vous ne pouvez pas réaffecter ou redéclarer la constante 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