javascript pass-by référence vs pass-by value
javascript utilise à la fois des mécanismes pass-by-valeur et pass-by-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 non-promitatifs, principalement des objets, sont passés par référence.
Dans le cas des objets, une référence à l'objet est transmise plutôt que par 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 démontré dans 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 rectangulaire
L'exemple de la question inclut un rectangle de fonction imbriqué avec le paramètre mon. Ce paramètre est initialement non dé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 rectangulaire et sa fonction de zone intérieure.
Bien que le paramètre My ne soit pas initialement défini dans la fonction Rectangle, c'est une référence d'objet transmise par référence. En tant que tel, lorsqu'il est attribué dans la fonction Rectangle, il crée une nouvelle référence à un objet qui peut être modifié à la fois dans le rectangle et les fonctions de zone, même si la fonction de zone ne reçoit pas directement le paramètre.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3