¿Cómo verificar que una función es una función de generador o no usa JavaScript?

Dado un documento HTML que contiene alguna función de JavaScript y la tarea es verificar si la función dada es una función de generador o no con la ayuda de JavaScript. Hay dos ejemplos para resolver este problema que se discuten a continuación:

Ejemplo 1: En este ejemplo, usaremos la propiedad functionName.constructor.name . Si el valor de la propiedad functionName.constructor.name es igual a ‘GeneratorFunction’, entonces la función dada será la función generadora.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        Check whether a given function is a
        generator function or not in JavaScript
    </title>
</head> 
  
<body style="text-align:center;">
      
    <h1 style="color:green;"> 
        GeeksForGeeks 
    </h1> 
      
    <p style=
        "font-size: 19px; font-weight: bold;">
        Click on button to check whether a 
        function is generator or not? 
    </p>
      
    <button onClick="GFG_Fun()"> 
        click here 
    </button> 
      
    <p id="GFG" style="color: green; 
        font-size: 24px; font-weight: bold;"> 
    </p>
      
    <script> 
        var gfg = document.getElementById('GFG'); 
          
        function * generatorFunction() { 
            yield 10; 
            yield 30;     
        } 
        function isGenerator(fn) {
            return fn.constructor.name === 'GeneratorFunction';
        }
        function GFG_Fun() {
            gfg.innerHTML = isGenerator(generatorFunction);
        } 
    </script> 
</body>
  
</html>

Producción:

Ejemplo 2: En este ejemplo, usaremos el operador instanceof . Primero defina la función del generador y luego verifique que el valor devuelto por el operador instanceof sea igual o no a la función del generador.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        Check whether a given function is a
        generator function or not in JavaScript
    </title>
</head> 
  
<body style="text-align:center;">
      
    <h1 style="color:green;"> 
        GeeksForGeeks 
    </h1> 
      
    <p style=
        "font-size: 19px; font-weight: bold;">
        Click on button to check whether a 
        function is generator or not? 
    </p>
      
    <button onClick="GFG_Fun()"> 
        click here 
    </button> 
      
    <p id="GFG" style="color: green; 
        font-size: 24px; font-weight: bold;"> 
    </p>
      
    <script> 
        var gfg = document.getElementById('GFG'); 
          
        function *genFun() { 
            yield 10; 
            yield 30;     
        }
          
        function GFG_Fun() {
            var GeneratorFunction = (function*(){
                yield undefined;
            }).constructor;
              
            gfg.innerHTML = 
                genFun instanceof GeneratorFunction;
        } 
    </script> 
</body>
  
</html>

Producció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 *