Rumah >hujung hadapan web >tutorial js >Mengapakah JavaScript bind() Diperlukan untuk Mengekalkan Nilai \'ini\' dalam Panggilan Balik Asynchronous dan Argumen Fungsi?
Dalam JavaScript, kata kunci ini merujuk kepada objek yang memiliki fungsi yang sedang dilaksanakan. Walau bagaimanapun, dalam panggilan balik tak segerak atau apabila menghantar fungsi sebagai argumen kepada fungsi lain, nilai ini boleh hilang.
Apabila fungsi dipanggil sebagai kaedah objek (cth., object.method()), ini merujuk objek dengan betul. Walau bagaimanapun, apabila fungsi itu digunakan sebagai fungsi kendiri (cth., method()), ini akan menjadi lalai kepada objek global.
Untuk mengelakkan isu ini, bind() membenarkan anda menentukan nilai ini secara manual apabila memanggil fungsi pada masa hadapan. Ia mengembalikan fungsi baharu dengan nilai ini terikat pada objek yang ditentukan.
Dalam Contoh 2, bind() digunakan untuk mencipta fungsi baharu (storeMyName2) yang mempunyai rujukan ini terikat kepada myName. Ini memastikan bahawa apabila fungsi baharu dipanggil, ini akan merujuk kepada myName, tanpa mengira cara ia dipanggil.
Dalam Contoh 3, storeMyName3 ditetapkan kepada hasil daripada memanggil myName.getName() secara terus. Ini bermakna storeMyName3 mengandungi nilai yang dikembalikan, iaitu hanya rentetan "Tom." Ia bukan fungsi seperti storeMyName dan storeMyName2, jadi ia tidak melibatkan konsep ini.
Atas ialah kandungan terperinci Mengapakah JavaScript bind() Diperlukan untuk Mengekalkan Nilai \'ini\' dalam Panggilan Balik Asynchronous dan Argumen Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!