Itu berasal dari memikirkan soal tes tertulis. Biasanya, tidak ada yang akan mengubah nilai parameter di dalam fungsi. Hanya dibahas di sini. Ada tiga cara untuk memodifikasinya.
1. Ubah parameter formal secara langsung saat mendeklarasikan fungsi
Copy kode kodenya sebagai berikut:
fungsi f1(a) {
peringatan(a);
a = 1;//Ubah parameter formal a
peringatan(1 === a);
peringatan(1 === argumen[0]);
}
f1(10);
Fungsi f1 mendefinisikan parameter a. Saat memanggil, parameter 10 dilewatkan, 10 dimunculkan terlebih dahulu, a diubah menjadi 1, true dimunculkan dua kali, dan a serta argumen[0] keduanya 1.
2. Ubah melalui objek argumen di dalam fungsi
Copy kode kodenya sebagai berikut:
fungsi f2(a) {
peringatan(a);
argument[0] = 1; //Ubah argumen
peringatan(1 === a);
peringatan(1 === argumen[0]);
}
Efeknya sama dengan fungsi f1.
3. Variabel lokal yang dideklarasikan di dalam fungsi memiliki nama yang sama dengan parameter formal.
Copy kode kodenya sebagai berikut:
fungsi f3(a) {
peringatan(a);
var a = 1;//Deklarasikan variabel lokal a dan berikan nilai 1
peringatan(1 === a);
peringatan(argumen[0]);
}
f3(10);
Fungsi f3 mendefinisikan parameter formal a, dan variabel lokal a dideklarasikan di dalam fungsi dan diberi nilai 1, tetapi a di sini masih berupa parameter a, yang dapat dibuktikan dengan fakta bahwa argumen[0] yang muncul di akhir diubah menjadi 1.
4. Jika Anda hanya mendeklarasikan variabel lokal a tanpa memberikan nilai, situasinya berbeda.
Copy kode kodenya sebagai berikut:
fungsi f3(a) {
var a;//Deklarasi saja, tidak ada penugasan
peringatan(a);
peringatan(argumen[0]);
}
f3(10);
Saat ini, semua pop-up ada 10, bukan tidak terdefinisi.