En este artículo, veremos cómo transformar una string en una función en JavaScript. Hay dos formas de transformar una string en una función en JavaScript. El primero y sencillo es eval() , pero no es un método seguro, ya que puede ejecutarse dentro de su aplicación sin permiso, por lo que es más propenso a sufrir ataques de terceros. El segundo es Function(), que es mucho más seguro que eval().
- Javascript eval() : este método toma una string como argumento y la convierte en una función. Aquí, la string puede ser una expresión, variable, declaración o secuencia de declaraciones de JavaScript.
- Constructor de funciones: las funciones creadas con el constructor de funciones no crean cierres en sus contextos de creación; siempre se crean en el ámbito global. Solo podrán acceder a sus propias variables locales y globales cuando se ejecuten, no a las variables del ámbito en el que se creó el constructor de funciones.
Ejemplo 1: El siguiente ejemplo de código muestra otra forma de usar el constructor de funciones para convertir la string en una función.
HTML
<!DOCTYPE html> <html> <body> <h1 style="color:green"> GeeksforGeeks </h1> <h3> This example shows how we can transform string into a function in javascript using Function Constructor </h3> <p> The code output is : <span id="result"></span> </p> <script> var fnstring = "func"; var fnparams = ["first", "second", "third"]; // find an object var fn = window[fnstring]; // check if object a function? if (typeof fn === "function") { fn.apply(null, fnparams); } function func(a, b, c) { document.getElementById("result").innerHTML = b; } </script> </body> </html>
Producción:
Ejemplo 2: El siguiente ejemplo de código muestra diferentes formas de convertir una string en una función.
HTML
<!DOCTYPE html> <html> <body> <h1 style="color:green;"> GeeksforGeeks </h1> <h3> This example shows how we can transform string into a function in javascript </h3> <h3>1. Use of eval()</h3> <p> When string "var func = function(){ return a+b }" is passed in eval() and func() is called, The output is : <span id="result"></span> </p> <h3>2. Use of Function constructor</h3> <p> When strings "x=5", "y=20", "return x*y" is passed in Function constructor and fn() is called, The output is : <span id="func1"></span> </p> <p> When strings "x=5", "y=20", "return x*y" is passed in Function constructor and fn(4,10) is called, The output is : <span id="func2"></span> </p> <script> // use of eval() var a = 100; var b = 200; eval("var func = function(){ return a+b }"); document.getElementById("result").innerHTML = func(); // Use of Function Constructor const fn = new Function("x=5", "y=20", "return x*y"); document.getElementById("func1").innerHTML = fn(); document.getElementById("func2").innerHTML = fn(4, 10); </script> </body> </html>
Salida: La salida muestra la transformación de una string en una función.
Publicación traducida automáticamente
Artículo escrito por chiragchouhan163 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA