Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

265
Vistas
Anulación de setItem de almacenamiento local: error de invocación ilegal

Estoy tratando de anular el método localStorage.setItem para agregar una opción de deshabilitar el almacenamiento local con fines de depuración. Pero sigo teniendo un error de Invocación ilegal cuando uso el método.

 let originalFunction = window.Storage.prototype.setItem; window.Storage.prototype.setItem = (keyName, keyValue) => { console.log("Override worked ! ") let currentState = localStorage.getItem("disableStorage"); if (currentState === null || keyName === "disableStorage") { originalFunction(keyName, keyValue); } return; } localStorage.setItem("test", "blah");

He hecho un jsfiddle para que lo pruebes, ya que en el fragmento de código, el almacenamiento local no funcionará.

He probado con y sin ventana, no funciona en ninguno de los dos casos.

No podemos verlo correctamente en jsfiddle, pero el error está en la línea: función originalFunction(keyName, keyValue)

He hecho el override correspondiente a esta pregunta . Pero no parece funcionar.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

He encontrado el problema.
Aparentemente, necesitamos usar .apply para llamar al método original.

He actualizado el violín, por lo que ahora es la versión de trabajo. Aquí hay algunos fragmentos para la coherencia:

 let originalFunction = window.Storage.prototype.setItem; window.Storage.prototype.setItem = function(keyName, keyValue) { console.log("Override worked ! ") let currentState = localStorage.getItem("disableStorage"); if (currentState === null || keyName === "disableStorage") { originalFunction.apply(this, arguments); } return; } localStorage.setItem("test", "blah");

El fragmento no funcionará, pero el código sí.

He encontrado la sintaxis aquí .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda