In Javascript wissen wir, dass die Übergabe eines Arrays als tatsächlicher Parameter an eine Funktion als Referenz erfolgt. Wenn diese Referenz jedoch in dieser Funktion überschrieben wird, was wird dann das Ergebnis sein? Bitte schauen Sie sich den folgenden Code an:
+ Erweitern Sie den Code, um den Quellcode anzuzeigen und zu drucken?·········10········20········30·········40 ······ ··50·········60·········70·········80·········90· ········100·· ·····110·······120·······130·······140·······150
01.var oldArray = [1, 2, 3];
02.
03.Funktion changesArray1(oldArray) {
04.
oldArray[0] = 'test1'; //Es ist möglich, ein Element des Arrays zu ändern
05.
print(oldArray + ' in changesArray1');
06.}
07.
08.modifyArray1(oldArray);
09.print(oldArray + ' out changesArray1');
10.
11.print('=========================================');
12.
13.oldArray = [1, 2, 3]; //Array wiederherstellen
14.
15.Funktion changesArray2(oldArray) {
16.
var newArray = ['a', 'b', 'c'];
17.
oldArray[0] = 'test2'; //Änderungen an Array-Elementen sind gültig
18.
oldArray = newArray; // Überschreibe die Referenz, sie wird ungültig, sobald sie den Gültigkeitsbereich der Funktion verlässt
19.
print(oldArray + ' in changesArray2');
20.}
einundzwanzig.
22.modifyArray2(oldArray);
23.print(oldArray + ' out changesArray2');
Dieser Code kann über die JavaScript-Shell ausgeführt werden. Meine Ausgabe ist:
+ Erweitern Sie den Code, um den Quellcode zum Drucken anzuzeigen?·········10·········20·········30···· ····40 ·········50·········60·········70········80······ ···90····· ···100·······110·······120·······130········140···· ···150
1.test1,2,3 in changesArray1
2.test1,2,3 out changesArray1
3.=========================================
4.a,b,c in changesArray2
5.test2,2,3 out changesArray2
Dies verdeutlicht die Tatsache, dass, wenn Sie die Referenz des tatsächlichen Parameters in einer Funktion direkt überschreiben, diese innerhalb der Funktion gültig ist, außerhalb des Funktionsbereichs jedoch ungültig wird.