Maison > interface Web > js tutoriel > Comment puis-je simuler le passage par référence en JavaScript ?

Comment puis-je simuler le passage par référence en JavaScript ?

Mary-Kate Olsen
Libérer: 2025-01-01 02:36:11
original
418 Les gens l'ont consulté

How Can I Simulate Pass-by-Reference in JavaScript?

Comment passer des variables par référence en JavaScript

Passer des variables par référence permet aux fonctions de modifier les variables d'origine dans le contexte appelant. Bien que JavaScript ne dispose pas de véritable passage par référence, il fournit des moyens d'obtenir des fonctionnalités similaires.

Passer des objets

Pour modifier le contenu des objets, transmettez-les par valeur aux fonctions. JavaScript permet de modifier les propriétés des objets, comme le montre l'exemple ci-dessous :

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

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

alterObject(myObj);

alert(myObj.foo); // "goodbye"
Copier après la connexion

Modification des tableaux

Parcourir les propriétés du tableau avec des index numériques pour modifier des cellules individuelles :

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
    arr[i] = arr[i] + 1;
}
Copier après la connexion

Tentative d'un véritable passage par référence (pas possible)

Notez que le véritable passage par référence (modification de variables simples dans le contexte appelant) n'est pas possible en JavaScript. L'exemple suivant illustre ce concept :

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"
Copier après la connexion

Contrairement à C , JavaScript ne prend pas en charge le véritable passage par référence, où les fonctions pourraient modifier des variables simples dans le contexte d'appel. Au lieu de cela, JavaScript permet uniquement de transmettre des références à des objets modifiables, ce qui modifie leur contenu mais pas leurs références.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal