Maison >interface Web >js tutoriel >Comment le mécanisme de passage par valeur de JavaScript affecte-t-il les variables primitives et objets dans les fonctions ?
Comprendre le passage par référence et le passage par valeur de JavaScript
En JavaScript, les paramètres transmis aux fonctions sont toujours transmis par valeur. Cela signifie qu'une copie de la valeur d'origine est créée et que la valeur d'origine n'est affectée par aucune modification apportée à la copie. Cependant, lorsque la valeur est un objet (y compris des tableaux), la copie créée est une référence à l'objet d'origine.
Ce concept affecte le comportement des variables lorsqu'elles sont modifiées au sein des fonctions :
Par exemple :
function f(a, b, c) { a = 3; // Re-assigns a to a new primitive value b.push("foo"); // Adds a new property to b, modifying the referenced object c.first = false; // Modifies a property of the referenced object }
Dans cet exemple, x, y, et z en dehors de la fonction auront les valeurs suivantes : x reste inchangé à 4 (valeur primitive), y a maintenant la propriété supplémentaire ["foo"] (propriété d'objet ajoutée) et z.first est défini sur false (objet propriété modifiée).
Pour créer une copie totalement indépendante d'un objet, il est nécessaire de copier explicitement toutes ses propriétés dans un nouvel objet. Cela peut être fait en utilisant la méthode Object.assign() ou en parcourant l'objet et en créant un nouvel objet avec de nouvelles propriétés basées sur les anciennes.
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!