Rumah  >  Artikel  >  hujung hadapan web  >  ## Dari Mana Datang Parameter Dalam Fungsi Panggilan Balik JavaScript?

## Dari Mana Datang Parameter Dalam Fungsi Panggilan Balik JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 11:04:29565semak imbas

## Where Do The Parameters Come From In JavaScript Callback Functions?

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:

  1. Objek Permintaan ('req'): Objek ini mengandungi maklumat tentang permintaan HTTP, seperti pengepala, parameter pertanyaan dan URL yang diminta.
  2. Objek Respons ('res'): Objek ini membenarkan anda menghantar respons HTTP kepada klien. Ia menyediakan kaedah untuk menetapkan kod status, menghantar data dan mengurus pengepala.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn