JavaScript TypeError: X.prototype.y invocado en un tipo incompatible

Esta excepción de JavaScript invocada en destino (u objeto) incompatible ” ocurre si se llama a una función (en un objeto dado) con un ‘esto’ correspondiente a un tipo diferente al tipo esperado por la función.

Mensaje:

TypeError: 'this' is not a Set object (EdgE)
TypeError: Function.prototype.toString called on 
           incompatible object (Firefox)
TypeError: Function.prototype.bind called on incompatible
           target (Firefox)
TypeError: Method Set.prototype.add called on incompatible
           receiver undefined (Chrome)
TypeError: Bind must be called on a function (Chrome)

Tipo de error:

TypeError

Causa del error: en algún lugar de las llamadas a funciones, se llama a la función (en un objeto dado) con un ‘esto’ que no corresponde al tipo esperado por la función.

Ejemplo 1:  En este ejemplo, GFG_Set.add es una función, pero GFG_Set no se captura como ‘esto’.

HTML

<script>
    var GFG_Set = new Set;
    ['Geek', 'GFG'].forEach(GFG_Set.add);
</script>

Salida (en consola):

TypeError: 'this' is not a Set object

Ejemplo 2: En este ejemplo, GFG_Fun.bind es una función, pero GFG_Fun no se captura como ‘esto’.

HTML

<script>
    var GFG_Fun = function () {
      console.log(this);
    };
    ['Geek', 'GFG'].forEach(GFG_Fun.bind);
</script>

Salida (en consola):

TypeError: 'this' is not a Set object

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 *