¿Cómo transformar String en una función en JavaScript?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *