Underscore.js es una biblioteca de JavaScript que proporciona muchas funciones útiles como el mapa, el filtro, la invocación, etc., incluso sin usar ningún objeto integrado.
El _.wrap() se usa para envolver una función dentro de otra función. Significa que se llama a la primera función de llamada (una función que llama a otra función en su cuerpo) y luego se ejecuta la función llamada. Si la función que llama no llama a la función llamada, la segunda función no se ejecutará.
Sintaxis:
_.wrap( function, wrapper )
Parámetros: esta función acepta dos parámetros que se enumeran a continuación:
- función: este parámetro se utiliza para contener el nombre de la función.
- contenedor: este parámetro se utiliza para contener la función contenedora que envuelve la primera función.
Valor de retorno: Devuelve la salida de ambas funciones involucradas en el proceso.
No pasar argumentos de ambas funciones de la función _.wrap(): Se llama a la función que se pasa a la función console.log(). Ese cuerpo de función contiene la función _.wrap() que llama a la otra función. Luego se ejecuta el otro cuerpo de la función y finalmente el control vuelve a la función llamada.
Ejemplo:
<!DOCTYPE html> <html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> </head> <body> <script type = "text/javascript"> var func1 = function() { return "first function. "; }; func2 = _.wrap(func1, function(func) { return func() + "second func. "; }); console.log(func2()); </script> </body> </html>
Producción:
Pasar un argumento a la segunda función de la función _.wrap(): Pasar el argumento a la segunda función desde la definición de la primera función. En la definición, el parámetro a la segunda función se pasará dando el parámetro entre comillas dobles (» «) dentro de los corchetes. La función funcionará como antes, como primero, se ejecutará la primera función que se llame y luego se ejecutará la primera función.
Ejemplo:
<!DOCTYPE html> <html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> </head> <body> <script type="text/javascript"> var func1 = function(a) { return "first function: " + a + "."; }; func2 = _.wrap(func1, function(func) { return "second func starts. " + func("10") + " second function ends."; }); console.log(func2()); </script> </body> </html>
Producción:
Pasar caracteres especiales como argumento a la segunda función de la función _.wrap(): Al pasar caracteres especiales a la segunda función, la función _.wrap() funcionará de la misma manera. Toma el carácter especial como un carácter normal y luego funciona de la misma manera. Se llamará a la primera función y luego se ejecutará su cuerpo. Después de eso, cuando se llame a la primera función dentro de la segunda función, se ejecutará el cuerpo de la segunda función.
Ejemplo:
<!DOCTYPE html> <html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> </head> <body> <script type="text/javascript"> var func1 = function(a) { return a; }; func2 = _.wrap(func1, function(func) { return "second function starts { " + func("***** This is first function *****") + " } second function ends here."; }); console.log(func2()); </script> </body> </html>
Producción:
Pasar números como argumentos a la segunda función de la función _.wrap(): La segunda función también considerará los números de la misma manera que considera los caracteres. Esto dará la salida en consecuencia.
Ejemplo:
<!DOCTYPE html> <html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> </head> <body> <script type = "text/javascript"> var func1 = function(a) { return a + ", "; }; func2 = _.wrap(func1, function(func) { return "10, 20, " + func("30, 40, 50") + " 60, 70."; }); console.log(func2()); </script> </body> </html>
Producción:
Nota: estos comandos no funcionarán en la consola de Google o en Firefox, ya que estos archivos adicionales deben agregarse y no se agregaron. Por lo tanto, agregue los enlaces dados a su archivo HTML y luego ejecútelos.
<script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script>