¿Cómo crear una función a partir de una string en JavaScript?

La tarea es crear una función a partir de la string dada en el formato de función. Aquí hay algunas técnicas discutidas con la ayuda de JavaScript.

Enfoque 1:

  • Use el constructor Function() para crear una función a partir de la string.
  • Acepta cualquier número de argumentos (en forma de string). El último debe ser el cuerpo de la función.
  • En este ejemplo, solo se pasa el cuerpo de la función que devuelve un valor.

Ejemplo 1: Este ejemplo utiliza un enfoque como se discutió anteriormente

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        create a function from a string in JavaScript 
    </title>
</head>
  
<body style="text-align:center;" id="body">
    <h1 style="color:green;">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP"
       style="font-size: 15px;
              font-weight: bold;">
    </p>
    <button onclick="GFG_Fun()">
        Click Here
    </button>
    <p id="GFG_DOWN"
       style="color:green;
              font-size: 20px;
              font-weight: bold;">
    </p>
    <script>
        var up = document.getElementById('GFG_UP');
        var down = document.getElementById('GFG_DOWN');
        var func = 'return "This is return value";';
        up.innerHTML = 
          "Click on the button to create "+
          "function from string.<br>FUNCTION - '" 
        + func + "'";
        
        // Till this point we can use 'func' as function.
        function GFG_Fun() {
            var func2 = Function(func); 
          // Now 'func' can be used as function.
            down.innerHTML = func2();
        }
    </script>
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Enfoque 2:

  • Utilice el método eval() para crear una función a partir de la string.
  • Acepta la función en forma de string y la convierte en una función de JavaScript.
  • En este ejemplo, toma 2 argumentos y devuelve la suma de ambos números.

Ejemplo 2: Este ejemplo utiliza un enfoque como se discutió anteriormente.

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        create a function from a string in JavaScript
    </title>
</head>
  
<body style="text-align:center;"
      id="body">
    <h1 style="color:green;">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style="font-size: 15px;
              font-weight: bold;">
    </p>
    <button onclick="GFG_Fun()">
        Click Here
    </button>
    <p id="GFG_DOWN" 
       style="color:green;
              font-size: 20px; 
              font-weight: bold;">
    </p>
    <script>
        var up = document.getElementById('GFG_UP');
        var down = document.getElementById('GFG_DOWN');
        var str = "var func = function (a, b) { return a + b; };";
        up.innerHTML = 
          "Click on the button to create "+
          "function from string.<br>FUNCTION - '" + str + "'";
        
        // Till this point we can use 'func' as function.
        function GFG_Fun() {
          // converting the string to function.
            eval(str); 
            down.innerHTML = func(2, 5);
        }
    </script>
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar 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 *