JavaScript: TypeError no capturado: n no es una función

TypeError no capturado: ‘n’ no es una función:

Este es un error estándar de JavaScript cuando se intenta llamar a una función antes de que se defina. Este error ocurre si intenta ejecutar una función que no está inicializada o no está inicializada correctamente. Esto significa que la expresión no devolvió un objeto de función. Por lo tanto, debe comprender que lo que está tratando de lograr no es una característica.

Mensaje:

TypeError: el objeto no admite la propiedad o el método {n} (Edge)

TypeError: «n» no es una función

Tipo de error:

TypeError

Qué causa TypeError: «n» no es una función:

Ejemplo 1: este escenario ocurre cuando hay un error tipográfico en el nombre del método:

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        let n = document.getElementByID('GFG');
        document.write(n);
    </script>
</body>
  
</html>

Salida: al ejecutar el ejemplo anterior, arroja un error de JavaScript.

TypeError: document.getElementByID is not a function

El nombre correcto de la función es getElementById :

Ejemplo 2: este caso ocurre cuando un objeto no contiene una función cuando se llama.

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        let num = {
            foo: function () {
                console.log("foo called");
            }
        };
        num.fo();
    </script>
</body>
  
</html>

Producción:

TypeError: num.fo is not a function

Explicación: En el ejemplo anterior, el objeto num contiene una función foo() . Sin embargo, el código anterior intentará llamar a la función fo() , que no incluye num . Entonces, mientras ejecuta el ejemplo anterior, arroja un error de JavaScript

La llamada de función correcta es foo() :

Ejemplo 3: Ciertos métodos deben proporcionar una función que funcione solo para un objeto en particular.

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        let arr = { a: 1, b: 2, c: 3 };
        arr.map(function (num)){
            return num;
        });
    </script>
</body>
  
</html>

Producción:

TypeError: arr.map is not a function

Explicación: En el ejemplo anterior, se usa Array.prototype.map(), que funcionará solo con objetos Array. Entonces, mientras ejecuta el ejemplo anterior, arroja un error de JavaScript.

La forma correcta es declarar la array correctamente como arr=[35,42,90]

Ejemplo 4: A veces, cuando crea una clase, puede tener propiedades y funciones con el mismo nombre. Cuando se llama a una función, el compilador asume que la función ya no existe.

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        var Boy = function () {
            this.age = 15;
            this.color = "white";
            this.name = "John"
            return this;
        }
        Boy.prototype.name = function (name) {
            this.name = name;
            return this;
        }
        var myNewBoy = new Boy();
        myNewBoy.name("Harry");
    </script>
</body>
  
</html>

Producción:

TypeError: myNewBoy.name is not a function

Explicación: En el ejemplo anterior, el nombre es la propiedad preexistente. Entonces, este código arroja el error .

La forma correcta de definir la propiedad es:

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        var Boy = function () {
            this.age = 15;
            this.color = "white";
            this.boyName = "John"
            return this;
        }
        Boy.prototype.name = function (name) {
            this.boyName = name;
            return this;
        }
        var myNewBoy = new Boy();
        myNewBoy.name("Harry");
    </script>
</body>
  
</html>

Nota: Asegúrese de importar el módulo correctamente. Supongamos que tenemos un archivo ‘helpers.js’ . Entonces, tenemos que importar el app.js:

import helpers from './helpers'

Ejemplo 5: En este caso, los paréntesis se usan como multiplicación Pero son como llamar a una función. Entonces se ha producido el error.

HTML

<!DOCTYPE html>
<html>
  
<head>
    <title>Type Error</title>
</head>
  
<body>
    <script>
        const n = 4(4 + 5);
        document.write(n);
    </script>
</body>
  
</html>

Salida: este código arroja el error.

TypeError: 4 is not a function

La forma correcta es “4*(4+5)”.

Publicación traducida automáticamente

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