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

Explication détaillée du paramètre JavaScript passant par valeur et exemples d'utilisation de transmission de référence

伊谢尔伦
Libérer: 2017-07-26 17:09:22
original
1263 Les gens l'ont consulté

Qu'est-ce que le passage par valeur ?

En d'autres termes, copier la valeur en dehors de la fonction vers le paramètre à l'intérieur de la fonction revient à copier la valeur d'une variable vers une autre variable.

Passer par valeur

Un exemple simple :


var value = 1;
function foo(v) {
  v = 2;
  console.log(v); //2
}
foo(value);
console.log(value) // 1
Copier après la connexion

C'est facile à comprendre, lors du passage value dans la fonction foo équivaut à copier une copie de value. Supposons que la copie soit appelée _value. Ce qui est modifié dans la fonction est la valeur de _value sans affecter la valeur d'origine.

Passage par référence

La copie est facile à comprendre, mais lorsque la valeur est une structure de données complexe, la copie entraînera des problèmes de performances.

Il existe donc une autre façon de passer appelée passer par référence.

Le soi-disant passage par référence signifie passer la référence de l'objet. Toute modification des paramètres à l'intérieur de la fonction affectera la valeur de l'objet, car les deux font référence au même objet.

Par exemple :


var obj = {
  value: 1
};
function foo(o) {
  o.value = 2;
  console.log(o.value); //2
}
foo(obj);
console.log(obj.value) // 2
Copier après la connexion

Est-ce un passage par référence ?

Le troisième mode de livraison

Pas pressé, regardons un autre exemple :


var obj = {
  value: 1
};
function foo(o) {
  o = 2;
  console.log(o); //2
}
foo(obj);
console.log(obj.value) // 1
Copier après la connexion

Si JavaScript utilise le passage par référence, la valeur externe sera également modifiée. Pourquoi cela n'a-t-il pas été modifié ? Alors, n'est-ce vraiment pas une référence ?

Il s'agit de mentionner qu'il existe en fait une troisième méthode de livraison, appelée livraison partagée.

Le transfert partagé signifie que lors du transfert d'un objet, une copie de la référence de l'objet est transférée.

Remarque : Passer par référence, c'est passer une référence à l'objet, tandis que passer par partage, c'est passer une copie de la référence de l'objet !

Donc, si vous modifiez o.value, vous pouvez trouver la valeur d'origine par référence, mais modifier o directement ne modifiera pas la valeur d'origine. Ainsi, les deuxième et troisième exemples sont en fait transmis par partage.

Enfin, vous pouvez le comprendre ainsi :

Si le paramètre est un type basique, il est passé par valeur, s'il s'agit d'un type référence, il est passé par partage.

Mais comme la copie est aussi une copie de la valeur, elle est aussi directement considérée comme passée par valeur dans l'élévation.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal