Las funciones de JavaScript se pueden enganchar; el gancho es un método para modificar dinámicamente el proceso de ejecución de una función o devolver resultados. JavaScript, como lenguaje dinámico, también puede realizar operaciones de enlace. Los ganchos generalmente se usan para escuchar, imprimir resultados, etc. parámetros o variables. Reemplazo y otras operaciones.
El entorno operativo de este tutorial: sistema Windows 10, versión JavaScript 1.8.5, computadora Dell G3.
Poder.
Hook es un método que modifica dinámicamente el proceso de ejecución o devuelve resultados de una función y se usa muy ampliamente en aplicaciones prácticas. Como lenguaje dinámico, Javascript también puede realizar operaciones Hook. Con el desarrollo del lenguaje Javascript, existen cada vez más métodos Hook.
La traducción literal de gancho significa gancho. En el campo de la ingeniería inversa, generalmente se usa para escuchar, imprimir resultados, reemplazar y otras operaciones para ciertos parámetros y variables.
Los ejemplos son los siguientes:
Código de muestra
función agregar(a,b){regresar a + b}código de gancho
Esta es una función de suma muy simple. Los valores de estos dos parámetros se pueden obtener a través de Hook, lo que equivale a agregar un código console.log(a,b) antes de regresar, para que los valores de estos. Se pueden generar dos para su análisis. Luego puede usar el siguiente método para sobrescribir la función, y este método es el modo decorador en JavaScript
let _add = addadd = function () { console.log('argumentos', argumentos) let resultado = _add.apply(this, argumentos) console.log('resultado', resultado) devuelve resultado // Si no se requiere el resultado, luego regresa directamente _add()}código completo
función agregar(a, b) { devolver a + b} let _add = addadd = function () { console.log('argumentos', argumentos) let resultado = _add.apply(this, argumentos) console.log('resultado' , resultado) devolver resultado } agregar(1, 2)Llamar a add(1,2) nuevamente generará los parámetros de los argumentos y el resultado 3. Se implementa un GANCHO muy simple.
Sin embargo, este ejemplo puede ser demasiado simple. Lo que quiero expresar es que a través de Hook podemos ubicar la función y la variable que queremos enganchar, y mediante una serie de operaciones (copia de funciones, metaprogramación), siempre que la función sea. Activado o usado (valor, modificación), podemos obtener los resultados que queremos (los resultados antes y después (como antes del cifrado, después del cifrado)). Este es nuestro propósito.
El ejemplo proporcionado en el libro tiene como objetivo ilustrar que desea agregar algunas funciones a una determinada función original (como agregar aquí), pero la función original puede haber sido escrita por otros desarrolladores, por lo que modificar directamente la función original en sí puede conducir a ERROR desconocido, por lo que puede utilizar el método anterior para copiar la función original sin destruir la función original.