Ada dua properti khusus di dalam fungsi: argumen dan ini. Argumen adalah objek array dari kelas yang berisi semua parameter yang dilewati.
Tetapi objek ini juga memiliki properti yang disebut Callee, yang merupakan penunjuk ke fungsi yang memiliki objek argumen.
Silakan lihat contoh fungsi faktorial klasik:
Salinan kode adalah sebagai berikut:
function factorial (num) {
if (num <= 1) {
kembali 1;
} kalau tidak {
return num * factorial (num - 1);
}
}
function factorial (num) {
if (num <= 1) {
kembali 1;
} kalau tidak {
return num * argumen.callee (num - 1);
}
}
Tidak ada yang salah dengan menggunakan metode pertama, tetapi kopling terlalu tinggi dan tidak terlalu bagus. Setelah nama fungsi diubah, nama fungsi internal juga harus diubah.
Metode kedua adalah kopling rendah, tidak peduli bagaimana nama fungsi diubah, itu tidak akan mempengaruhi eksekusi fungsi.
Ini mengacu pada objek lingkungan tempat fungsi dieksekusi, atau juga dapat dikatakan sebagai nilai ini.
Salinan kode adalah sebagai berikut:
window.color = "merah";
var o = {warna: "biru"};
fungsi katacolor () {
waspada (this.color);
}
waycolor (); // merah
O.SayColor = SayColor;
o.saycolor (); // biru
Atribut penelepon memegang referensi ke fungsi yang memanggil fungsi saat ini. Jika fungsi saat ini disebut dalam lingkup global, nilainya nol
Salinan kode adalah sebagai berikut:
fungsi luar () {
innter ();
}
function inner () {
//alert(innter.caller) ;///kupling terlalu tinggi
alert (arguments.callee.caller);
}
luar();
Di atas adalah semua konten dari sifat internal fungsi JavaScript. Saya harap Anda bisa menyukainya