Lingua-e
JavaScript

¿Qué significa Illegal Invocation?

← Errores

Este TypeError se lanza cuando un método incorporado se llama con el contexto 'this' incorrecto. Muchos métodos nativos del navegador y de Node.js usan 'this' internamente y lanzarán un error si se desvinculan de su objeto host.

Por qué ocurre

  • Almacenar un método incorporado (como console.log) en una variable y llamarlo sin el receptor original.
  • Pasar un método DOM como callback donde 'this' se convierte en undefined o window.
  • Usar Function.prototype.call() o .apply() en un método nativo con el contexto incorrecto.

Ejemplos

JavaScript

Código que causa el error

const log = console.log;
log("hello");

Error en la terminal

TypeError: Illegal invocation

Cómo solucionarlo

Usa .bind() para preservar el 'this' correcto: const log = console.log.bind(console). Envuelve el método en una función flecha. Al pasar métodos como callbacks, vincúlalos siempre a su objeto host primero.

Código corregido

// Bind the method to its original object
const log = console.log.bind(console);
log("hello"); // works

// Or use an arrow wrapper
const log2 = (...args) => console.log(...args);

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis