panggilan
panggilan ialah atribut objek, iaitu penunjuk yang menunjuk ke fungsi objek argumen
Mula-mula, mari tulis fungsi pesanan:
function chen(x){ if (x<=1) { return 1; } else{ return x*chen(x-1); }; };
Seperti yang dapat dilihat dari fungsi ini, fungsi rekursif digunakan Jika nama fungsi ditukar, nama fungsi di dalam juga akan berubah Ini sangat menyusahkan, jadi kami menggunakan callee untuk mencubanya
function chen(x){ if (x<=1) {return 1; }else{ return x*arguments.callee(x-1); }; };
Mari kita analisa mengapa ia ditulis seperti ini: Menurut definisi pemanggil, dapat dilihat bahawa pemanggil adalah atribut objek argumen dan menunjuk kepada fungsi objek argumen Fungsi ini adalah chen (chen=arguments .callee). Penjelasan ini harus difahami.
pemanggil
pemanggil ialah atribut objek fungsi, yang memegang rujukan kepada fungsi yang memanggil fungsi semasa (menunjuk kepada fungsi induk langsung bagi fungsi semasa)
Mari kita ambil contoh dahulu
function a(){ b(); }; function b(){ alert(b.caller); }; a(); //结果就是弹出函数a和内容
Mari kita jelaskan terlebih dahulu, pemanggil atribut fungsi b memanggil rujukan fungsi a bagi fungsi semasa b (yang menunjuk kepada fungsi induk a bagi fungsi semasa b), jadi hasilnya ialah fungsi a(){ b();}; muncul;
Sekarang anda memahami pemanggil dan penerima, bolehkah anda menggabungkan kedua-duanya untuk menggunakannya?
function b(){ alert(b.caller); };
Sebelum ini kami tahu cara untuk menunjuk ke objek semasa, mari ubah suai seterusnya:
(function a(){ b(); })(); function b(){ alert(arguments.callee.caller); };
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.