Passer des variables par référence en JavaScript
JavaScript n'a pas le concept de "passage par référence" présent dans d'autres langages de programmation. Cependant, il permet de transmettre des objets par valeur, permettant ainsi aux fonctions de modifier leur contenu.
Passer des objets par valeur
Pour modifier le contenu d'un objet au sein d'une fonction, transmettez l'objet lui-même en paramètre :
function alterObject(obj) { obj.foo = "goodbye"; } var myObj = { foo: "hello world" }; alterObject(myObj); console.log(myObj.foo); // "goodbye"
Modification Tableaux
Pour modifier les éléments d'un tableau, parcourez ses indices numériques et mettez à jour chaque cellule individuellement :
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) arr[i] = arr[i] + 1;
"Pass by Reference" en JavaScript
JavaScript ne dispose pas d'une véritable fonctionnalité de "passage par référence". Cela signifie qu'il est impossible de modifier la valeur d'une variable d'origine dans un appel de fonction, contrairement à des langages comme C .
Dans l'exemple ci-dessous, l'échange des valeurs de x et y échoue car elles sont transmises par valeur et ne peuvent pas être modifié directement au sein de la fonction :
function swap(a, b) { var tmp = a; a = b; b = tmp; } var x = 1, y = 2; swap(x, y); console.log("x is " + x + ", y is " + y); // "x is 1, y is 2"
Conclusion
Bien que JavaScript ne propose pas de "pass par référence" au sens traditionnel, le passage d'objets et la manipulation de leur contenu permettent des fonctionnalités similaires. Notez que cette technique modifie le contenu de l'objet, pas la référence de l'objet elle-même.
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!