Maison >interface Web >js tutoriel >Passage par référence ou passage par valeur en JavaScript : comment les objets et les primitives se comportent-ils dans les appels de fonction ?
Référence de passage JavaScript par rapport à la valeur de passage
JavaScript utilise à la fois des mécanismes de passage par valeur et de passage par référence . Les primitives, telles que les nombres et les chaînes, sont transmises par valeur, ce qui signifie qu'une copie de la primitive est créée dans la fonction appelée. En revanche, les objets non primitifs, principalement les objets, sont passés par référence.
Dans le cas des objets, une référence à l'objet est passée plutôt qu'une copie. Cela signifie que la modification de la variable de référence dans la fonction appelée n'affectera pas la référence dans l'appelant, comme le démontre l'exemple fourni :
var a = { key: 'value' }; replace(a); // a still holds its original value update(a); // a's contents change
Confusion avec la fonction rectangle
L'exemple de la question inclut un rectangle de fonction imbriqué avec le paramètre my. Ce paramètre est initialement indéfini, mais est défini dans la fonction. La raison de cette configuration est de fournir un moyen de partager des données entre la fonction rectangle et sa fonction de zone interne.
Bien que le paramètre my ne soit pas initialement défini dans la fonction rectangle, il s'agit d'une référence d'objet passée par référence. . En tant que tel, lorsqu'il est affecté dans la fonction rectangle, il crée une nouvelle référence à un objet qui peut être modifié à la fois dans les fonctions rectangle et zone, même si la fonction zone ne reçoit pas directement le paramètre my.
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!