Maison >interface Web >js tutoriel >JavaScript transmet-il les variables par référence ou par valeur ?

JavaScript transmet-il les variables par référence ou par valeur ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-13 15:12:12699parcourir

Does JavaScript Pass Variables by Reference or by Value?

Passer des variables par référence en JavaScript

Lors de l'exécution de plusieurs opérations sur des variables dans une boucle, il est crucial de comprendre comment JavaScript gère le passage des variables. JavaScript, contrairement à de nombreux autres langages de programmation, ne prend pas en charge le passage par référence. Cependant, référencer des objets permet de modifier leur contenu au sein de fonctions.

function alterObject(obj) {
  obj.foo = "goodbye";
}

var myObj = { foo: "hello world" };

alterObject(myObj);

alert(myObj.foo); // "goodbye"

Itérer sur des tableaux est également possible, permettant la modification de chaque cellule.

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
  arr[i] = arr[i] + 1;
}

C'est à noter ce véritable passage par référence implique la possibilité de modifier les valeurs dans le contexte d'appel, ce que JavaScript ne prend pas en charge.

function swap(a, b) {
  var tmp = a;
  a = b;
  b = tmp;
}

var x = 1, y = 2;
swap(x, y);

alert("x is " + x + ", y is " + y); // "x is 1, y is 2"

Contrairement à C , qui permet un véritable passage par référence, JavaScript ne prend en charge que la transmission de références à des objets. La modification du contenu des objets au sein des fonctions est possible, mais les références elles-mêmes ne peuvent pas être modifiées.

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!

Déclaration:
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