Apabila ini Berhujah: Memahami 'ini' dalam Fungsi Panggilan Balik
Dalam JavaScript, nilai ini dalam panggilan fungsi ditentukan oleh konteks di mana fungsi itu dilaksanakan. Walau bagaimanapun, apabila menyerahkan ini sebagai hujah, peraturan boleh menjadi rumit.
Secara khusus, senario berikut timbul: apabila fungsi panggil balik diluluskan sebagai hujah, mengapa ini tidak ditetapkan kepada fungsi yang memanggil panggilan balik?
Memahami Hierarki 'ini'
Untuk memahami mengapa ini ditetapkan di tempatnya, kita perlu mempertimbangkan hierarki panggilan fungsi:
Walau bagaimanapun, sebelum randomFunction memanggil panggil balik, ia menggunakan this.sumData.bind(this) untuk mencipta fungsi baharu (peraturan #5). Fungsi baharu ini memanggil fungsi panggil balik asal, tetapi kini dengan terikat ini kepada obj (argumen diluluskan untuk mengikat).
Implikasi untuk Fungsi Panggilan Balik
Apabila menghantar kaedah sebagai panggilan balik, adalah penting untuk memahami bahawa ia tidak akan dipanggil sebagai obj.method(). Ini bermakna ini tidak akan mempunyai nilai yang betul dalam fungsi panggil balik. Untuk menyelesaikan isu ini, anda boleh menggunakan bind() untuk menetapkan nilai ini dalam panggilan balik.
Nota Berguna Lain
Atas ialah kandungan terperinci Mengapa \'ini\' Tidak Merujuk kepada Fungsi Panggilan dalam Panggilan Balik JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!