Maison > interface Web > js tutoriel > L'opérateur « delete » de JavaScript supprime-t-il réellement les objets ?

L'opérateur « delete » de JavaScript supprime-t-il réellement les objets ?

DDD
Libérer: 2024-12-03 01:42:15
original
1051 Les gens l'ont consulté

Does JavaScript's `delete` Operator Actually Delete Objects?

Comprendre l'opérateur de suppression de JavaScript : une racine pour comprendre la suppression d'objets

En JavaScript, l'opérateur de suppression suscite la confusion parmi les programmeurs. Considérez l'extrait de code ci-dessous :

var obj = {
    helloText: "Hello World!"
};

var foo = obj;

delete obj;
Copier après la connexion

De façon inattendue, après l'exécution de ce code, obj devient nul alors que foo accède toujours au même objet. Ce comportement contredit la capacité présumée de l'opérateur de suppression à effacer des objets de la mémoire.

La compréhension de cette particularité réside dans la nature de l'opérateur de suppression lui-même. Cela supprime simplement les références aux objets, pas aux objets eux-mêmes. Si la suppression de références supprimait également des objets de la mémoire, toutes les références restantes seraient corrompues et provoqueraient des erreurs de plantage (comme celles rencontrées dans les opérations de « suppression » en C). De plus, la suppression de toutes les références nécessiterait une comptabilité excessive ou une surcharge de mémoire pour chaque objet.

JavaScript utilise un garbage collector, qui éradique les objets qui ne sont plus accessibles. En tant que tel, la suppression explicite d’objets n’est pas impérative ; le collecteur se chargera de leur suppression.

Cependant, la suppression manuelle des références aux objets fournit au garbage collector un meilleur aperçu de ce qui peut être récupéré. Conserver de nombreuses références à un objet volumineux peut gêner sa suppression, même s'il n'est plus nécessaire ailleurs dans le programme.

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