Mari kita teliti ke dalam fikiran kita dan selesaikannya, sekali dan selamanya.

Saya menulis catatan mikro ini kerana soalan di atas telah menghantui saya sejak sekian lama, dan saya tahu bahawa saya bukan satu-satunya. Setiap kali saya melihat seseorang menggunakan salah satu daripada tiga kaedah tersebut, saya harus bergegas ke MDN untuk mengetahui apa yang sedang berlaku.
Cukup sudah cukup. Saya tahu saya mesti melakukan sesuatu dan saya juga melakukannya. Saya sepatutnya membuat peluru perak pepatah yang dapat membantu pemaju JavaScript baru keluar.
Penafian : Ini bukan penyelesaian teori, tetapi cara yang benar-benar sukar untuk mengingati perbezaannya.Penyebab utama kekeliruan antara call()
dan apply()
kaedah adalah bagaimana menyampaikan hujah tambahan selain itu this
. Dan mengapa kita bind()
masih ada ?
Oleh itu, mari kita belajar bagaimana membezakan ketiga-tiganya dengan mudah.
Memohon ()
apply(this [, [arg1, arg2,...]])
: Memanggil fungsi dengan this
nilai yang disediakan . Argumen selanjutnya diberikan sebagai satu array .
Cara untuk mengingat : " Permintaan menerima argumen sebagai rray A " atau " AA "
Panggilan ()
call(this [, arg1, arg2...])
: Memanggil fungsi dengan yang disediakan this
. Argumen selanjutnya diberikan sebagai senarai yang dipisahkan dengan koma
Cara untuk diingat: "Argumen panggilan dipisahkan dengan koma" atau " CC ".
Ikat ()
bind(this)
: Mengembalikan fungsi baru yang this
nilainya terikat dengan nilai yang diberikan.
Cara untuk diingat: bind () adalah satu- satunya kaedah dari ketiga yang mengembalikan fungsi baru sama sekali. Ia tidak memanggil fungsi.
Balut
Saya harap penjelasan di atas dapat membantu sebilangan anda di luar sana. Ia pasti menolong saya.
Adakah anda mempunyai helah hafalan lain yang berkaitan dengan pengaturcaraan? Sila kongsi dengan komuniti kerana ini akan membantu semua orang. Terutama semasa temu ramah tersebut.
Sekiranya anda mempunyai pertanyaan atau keraguan, hubungi saya di Twitter @ rajat1saxena atau tulis kepada saya di [email protected]. Harap syorkan siaran ini, jika anda menyukainya dan bagikan dengan rangkaian anda.