En Javascript, nous savons que passer un tableau comme paramètre réel à une fonction est passé par référence, mais si cette référence est écrasée dans cette fonction, quel sera le résultat ? Veuillez regarder le code ci-dessous :
+ Développez le code pour afficher le code source et imprimer ?········10········20·······30·········40 ······ ··50·········60········70········80·········90· ·······100·· ·····110·······120·······130······140·······150
01.var vieuxArray = [1, 2, 3];
02.
03.fonction modifierArray1(ancienArray) {
04.
oldArray[0] = 'test1'; //Il est possible de changer un élément du tableau
05.
print(oldArray + 'in modifierArray1');
06.}
07.
08.modifyArray1(ancienArray);
09.print(oldArray + 'out modifierArray1');
10.
11.print('===========================================');
12.
13.oldArray = [1, 2, 3]; //Restaurer le tableau
14.
15.fonction modifierArray2(oldArray) {
16.
var nouveauArray = ['a', 'b', 'c'];
17.
oldArray[0] = 'test2'; //Les modifications apportées aux éléments du tableau sont valides
18.
oldArray = newArray; //Écrase la référence, elle sera invalide une fois qu'elle sortira du cadre de la fonction
19.
print(oldArray + 'in modifierArray2');
20.}
vingt-et-un.
22.modifyArray2(ancienArray);
23.print(oldArray + 'out modifierArray2');
Ce code peut être exécuté via le shell JavaScript. Ma sortie est :
+ Développez le code pour afficher le code source à imprimer ?·········10·········20········30···· ····40 ········50 ·········60 ········70 ·······80 ······ ···90····· ···100·······110·······120······130·······140···· ···150
1.test1,2,3 dans modifierArray1
2.test1,2,3 sur modifierArray1
3.===========================================
4.a,b,c dans modifierArray2
5.test2,2,3 sur modifierArray2
Cela illustre le fait que si vous écrasez directement la référence du paramètre réel dans une fonction, elle est valide à l'intérieur de la fonction, mais elle deviendra invalide en dehors de la portée de la fonction.