Maison > interface Web > js tutoriel > JavaScript passe-t-il par valeur ou par référence ?

JavaScript passe-t-il par valeur ou par référence ?

Barbara Streisand
Libérer: 2024-12-21 08:23:10
original
696 Les gens l'ont consulté

Does JavaScript Pass by Value or by Reference?

JavaScript : Passer par référence ou valeur

JavaScript passe-t-il par références ou par valeurs ?

JavaScript utilise une approche hybride, passant les primitives par valeur et les objets (y compris les tableaux) par "copie d'un référence."

Comprendre le passage de valeurs

Les types de données primitifs (par exemple, les chaînes, les nombres, les booléens) sont dupliqués et transmis en tant que valeurs indépendantes. Changer la valeur d'une primitive passée dans une fonction n'affecte pas la variable d'origine.

Comprendre le passage de référence

Les objets font référence aux adresses mémoire, et lorsqu'ils sont passés, ils font référence au même objet que l'appelant. Les modifications apportées au contenu de l'objet dans une fonction seront reflétées dans l'objet d'origine. Cependant, l'attribution d'une nouvelle référence (par exemple, ref = {}) ne modifiera que la copie locale de la référence, pas l'original.

Exemple d'utilisation

Dans le extrait de code fourni :

  • la fonction shape prend un objet de configuration, extrait les propriétés et renvoie un nouveau objet.
  • La fonction rectangle étend la forme en introduisant des propriétés supplémentaires et en renvoyant un nouvel objet.
  • Le nom de la propriété primitive (dans myShape et myRec) reste inchangé dans les fonctions, car il passe par valeur.
  • Propriété d'objet my (dans myRec) représente une référence copiée à l'objet d'origine, permettant la modification de son contenu (par exemple, my.l et my.w). L'attribution d'une nouvelle référence n'affecterait pas l'objet d'origine.
  • Les fonctions Area() utilisent les références locales à my pour calculer et accéder aux propriétés de l'objet mises à jour.

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