¿Cómo obtener todos los métodos de un objeto usando JavaScript?

Un documento HTML contiene algunos métodos y la tarea es obtener todos los métodos del objeto. Hay dos métodos para resolver este problema que se discuten a continuación:

Enfoque 1:

  • Cree una función que tome el objeto como entrada.
  • Utilice el operador typeof , que comprueba si el tipo de objeto es una función o no.
  • Si el tipo de objeto es función, devuelve el objeto.

Ejemplo: Este ejemplo implementa el enfoque anterior.

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        Ways to print all methods of an object.
    </title>
  
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head>
  
<body style="text-align:center;">
      
    <h1 style="color: green"> 
        GeeksForGeeks 
    </h1>
      
    <p id="GFG_UP" style=
        "font-size: 15px;font-weight: bold;">
    </p>
      
    <button onclick="gfg_Run()">
        Click Here
    </button>
      
    <p id="GFG_DOWN" style="color:green; 
            font-size: 30px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
          
        var el_down = document.getElementById("GFG_DOWN");
          
        el_up.innerHTML = "Click on the button to get "
                    + "the all methods of any Object.";
  
        function Obj() {
            this.m1 = function M1() {
                return "From M1";
            }
            this.m2 = function M2() {
                return "From M2";
            }
        }
  
        function getAllMethods(obj = this) {
            return Object.keys(obj)
                .filter((key) => typeof obj[key] === 'function')
                .map((key) => obj[key]);
        }
  
        function gfg_Run() {
            el_down.innerHTML = getAllMethods(new Obj());
        }
    </script>
</body>
  
</html>

Producción:

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

Enfoque 2:

  • Cree una función que tome el objeto como entrada.
  • Utilice el operador typeof , que comprueba si el tipo de objeto es una función o no. Este ejemplo también comprueba si se produjo algún error o no y, si se produjo, trátelo correctamente.
  • Si el tipo de objeto es una función, devuélvalo.

Ejemplo 2: Este ejemplo implementa el enfoque anterior.

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        Ways to print all methods of an object.
    </title>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head>
  
<body style="text-align:center;"
      id="body">
    <h1 id="h1"
        style="color: green">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style="font-size: 15px;
              font-weight: bold;">
    </p>
    <button onclick="gfg_Run()">
        Click Here
    </button>
    <p id="GFG_DOWN" 
       style="color:green;
              font-size: 30px;
              font-weight: bold;">
    </p>
    <script>
        var el_up = 
            document.getElementById("GFG_UP");
        var el_down = 
            document.getElementById("GFG_DOWN");
        el_up.innerHTML = 
"Click on the button to get the all methods of any Object.";
  
        function Obj() {
            this.m1 = function M1() {
                return "From M1";
            }
            this.m2 = function M2() {
                return "From M2";
            }
        }
  
        function getAllMethods(obj) {
            var result = [];
            for (var id in obj) {
                try {
                    if (typeof(obj[id]) == "function") {
                        result.push(id + ": " + obj[id].toString());
                    }
                } catch (err) {
                    result.push(id + ": Not accessible");
                }
            }
            return result;
        }
  
        function gfg_Run() {
            el_down.innerHTML = getAllMethods(new Obj()).join("\n");
        }
    </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 *