Maison > interface Web > js tutoriel > le corps du texte

Comment transmettre la valeur (pas la référence) d'une variable JavaScript à une fonction ?

Patricia Arquette
Libérer: 2024-10-25 08:00:03
original
637 Les gens l'ont consulté

How to Pass the Value (Not the Reference) of a JavaScript Variable to a Function?

Comment transmettre la valeur (et non la référence) d'une variable JS à une fonction

Dans les langages dynamiques tels que JavaScript, les variables sont passé par référence par défaut. Cela signifie que toute modification apportée à la variable dans la fonction sera reflétée dans la variable d'origine en dehors de la fonction. Dans certaines situations, ce comportement n'est pas souhaitable et vous devrez peut-être transmettre la valeur d'une variable à une fonction.

Pour les navigateurs modernes, envisagez d'utiliser les mots-clés let ou const pour définir des variables de portée bloc :

<code class="js">for (let i = 0; i < results.length; i++) {
  let marker = results[i];
  google.maps.event.addListener(marker, 'click', () => change_selection(i));
}</code>
Copier après la connexion

Cette approche garantit que chaque itération de la boucle crée une nouvelle portée pour la variable i, évitant ainsi le problème où chaque auditeur utilise la valeur de results.length à la fin de la boucle.

Si vous travaillez avec des navigateurs plus anciens, créez une portée distincte pour chaque itération de la boucle en passant la variable comme paramètre de fonction :

<code class="js">for (var i = 0; i < results.length; i++) {
  (function (i) {
    marker = results[i];
    google.maps.event.addListener(marker, 'click', function() { 
      change_selection(i);
    }); 
  })(i);
}</code>
Copier après la connexion

En utilisant une fonction anonyme et en l'appelant avec la variable comme premier argument, vous transmettez effectivement la valeur et créez une fermeture. Cela garantit que chaque écouteur possède sa propre copie de la variable i, faisant référence à sa valeur au moment de la création de l'écouteur.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!