Memahami Asal Usul Parameter dalam Fungsi Panggilan Balik JavaScript
Dalam JavaScript, fungsi panggil balik kerap digunakan untuk menangguhkan pelaksanaan sehingga peristiwa tertentu berlaku. Walau bagaimanapun, sumber pembolehubah fungsi panggil balik mungkin kelihatan membingungkan. Mari kita mendalami anatomi fungsi panggil balik dan asal parameternya, menggunakan kod Node.js berikut sebagai contoh:
router.get('/', function(req, res){ res.render('index', {}); });
Bagaimanakah Pembolehubah 'req' dan 'res' Diisi?
Bertentangan dengan apa yang mungkin diandaikan, 'req' dan 'res' tidak ditakrifkan dalam fungsi panggil balik itu sendiri. Sebaliknya, ia datang daripada fungsi yang memanggilnya, yang dalam kes ini ialah 'router.get'.
Apabila 'router.get' dipanggil dengan fungsi panggil balik, ia menghantar dua argumen kepada fungsi itu:
Masa Invocation dan Parameter Asal
Adalah penting untuk diingat bahawa fungsi panggil balik adalah tidak dilaksanakan serta-merta apabila ia ditakrifkan. Ia sebaliknya dipanggil pada masa kemudian, biasanya apabila peristiwa yang dikaitkan dengannya berlaku. Dalam kes ini, fungsi panggil balik digunakan apabila permintaan HTTP GET dibuat ke titik akhir '/'.
Pada masa invocation, fungsi yang anda hantar ke 'router.get' dilaksanakan dengan 'req' dan parameter 'res' yang dibekalkan oleh fungsi itu sendiri. Dalam erti kata lain, pembolehubah 'req' dan 'res' tidak terdapat dalam skop fungsi panggil balik tetapi sebaliknya dihantar sebagai hujah apabila fungsi itu dipanggil.
Contoh Ringkas Tanpa Pengisytiharan 'res'
Untuk menggambarkan lebih lanjut cara lulus parameter ini berfungsi, berikut ialah contoh ringkas yang menunjukkan cara anda boleh memanggil 'res.render' tanpa mengisytiharkan 'res' secara jelas:
// Define a function to handle HTTP GET requests function handleGetRequest(req, res) { // Render the 'index' view using the data provided by the request res.render('index', {}); } // Register the handler with the router router.get('/', handleGetRequest);
Dalam contoh ini, kami telah mencipta fungsi berasingan ('handleGetRequest') yang mengendalikan permintaan HTTP GET. Fungsi ini mengambil objek 'req' dan 'res' sebagai parameter. Apabila permintaan HTTP GET dibuat ke titik akhir '/', penghala menggunakan fungsi 'handleGetRequest' dan menghantar objek 'req' dan 'res' kepadanya. Fungsi kemudiannya boleh menggunakan objek ini untuk mengakses maklumat permintaan dan menghantar respons HTTP.
Pendekatan ini menunjukkan bahawa anda tidak perlu mengisytiharkan 'res' secara eksplisit dalam fungsi panggil balik selagi ia dihantar sebagai hujah apabila fungsi dipanggil.
Atas ialah kandungan terperinci ## Dari Mana Datang Parameter Dalam Fungsi Panggilan Balik JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!