Fungsi JavaScript dapat dihubungkan; hook adalah metode memodifikasi proses eksekusi suatu fungsi atau mengembalikan hasil secara dinamis. JavaScript, sebagai bahasa dinamis, juga dapat melakukan operasi kait biasanya digunakan untuk mendengarkan, mencetak keluaran, dll parameter atau variabel. Penggantian dan operasi lainnya.
Lingkungan pengoperasian tutorial ini: sistem Windows 10, JavaScript versi 1.8.5, komputer Dell G3.
Bisa.
Hook adalah metode yang secara dinamis mengubah proses eksekusi atau mengembalikan hasil suatu fungsi, dan sangat banyak digunakan dalam aplikasi praktis. Sebagai bahasa dinamis, Javascript juga dapat melakukan operasi Hook. Dengan berkembangnya bahasa Javascript, metode Hook semakin banyak.
Terjemahan harfiah dari hook berarti hook. Dalam bidang reverse engineering, biasanya digunakan untuk mendengarkan, mencetak output, mengganti dan operasi lain untuk parameter dan variabel tertentu.
Contohnya adalah sebagai berikut:
Kode sampel
fungsi tambah(a,b){kembalikan a + b}kode kait
Ini adalah fungsi penjumlahan yang sangat sederhana. Nilai kedua parameter ini dapat diperoleh melalui Hook, yang setara dengan menambahkan kode console.log(a,b) sebelum mengembalikannya, sehingga nilainya dua dapat menjadi keluaran untuk analisis. Kemudian Anda dapat menggunakan metode berikut untuk menimpa fungsi tersebut, dan metode ini adalah mode dekorator dalam JavaScript
let _add = addadd = function () { console.log('arguments', argument) let result = _add.apply(this, argument) console.log('result', result) mengembalikan hasil // Jika hasil tidak diperlukan, lalu Langsung kembalikan _add()}Kode lengkap
fungsi tambah(a, b) { kembalikan a + b} biarkan _add = tambahkantambahkan = fungsi () { console.log('argumen', argumen) biarkan hasil = _add.apply(ini, argumen) console.log('hasil' , hasil) mengembalikan hasil } tambahkan(1, 2)Memanggil add(1,2) lagi akan menampilkan parameter argumen dan hasil 3. Sebuah HOOK yang sangat sederhana diimplementasikan.
Namun, contoh ini mungkin terlalu sederhana. Yang ingin saya ungkapkan adalah melalui Hook, kita dapat menemukan fungsi dan variabel yang ingin kita Hook, dan melalui serangkaian operasi (penyalinan fungsi, metaprogramming), selama fungsinya adalah dipicu atau digunakan (nilai, modifikasi), kita bisa mendapatkan hasil yang kita inginkan (hasil sebelum dan sesudah (seperti sebelum enkripsi, setelah enkripsi)). Inilah tujuan kami.
Contoh yang diberikan dalam buku ini dimaksudkan untuk mengilustrasikan bahwa Anda ingin menambahkan beberapa fungsi ke fungsi asli tertentu (seperti tambahkan di sini), tetapi fungsi asli tersebut mungkin ditulis oleh pengembang lain, sehingga memodifikasi fungsi asli itu sendiri secara langsung dapat menyebabkan BUG yang tidak diketahui, sehingga Anda dapat menggunakan metode di atas untuk menyalin fungsi asli tanpa merusak fungsi aslinya.