Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda