Maison > Questions et réponses > le corps du texte
P粉4269063692023-08-22 13:30:26
C'est amusant en JavaScript. Prenons l'exemple suivant :
function changeStuff(a, b, c) { a = a * 10; b.item = "changed"; c = {item: "changed"}; } var num = 10; var obj1 = {item: "unchanged"}; var obj2 = {item: "unchanged"}; changeStuff(num, obj1, obj2); console.log(num); console.log(obj1.item); console.log(obj2.item);
Cela produira le résultat suivant :
10 changed unchanged
obj1
根本不是引用,那么改变obj1.item
对函数外部的obj1
il n'y a pas d'impact. num
将为100
,obj2.item
将为"changed"
。相反,num
保持为10
,obj2.item
仍然为"unchanged
".En fait, ce qui se passe, c'est que l'élément transmis est transmis par valeur. Mais l'élément passé par valeur lui-même est une référence. Techniquement, cela s'appelle un appel partagé.
Dans les applications pratiques, cela signifie si vous modifiez le paramètre lui-même (comme num
和obj2
),那不会影响传入参数的项。但是,如果更改参数的内部,那将会传播回来(如obj1
).