2011-11-19 14 views
5

sto cercando di estendere localStorage w/il seguente ...localStorage.prototype è nullo

localStorage.prototype.setItem2 = function(key,value) { 
    localStorage.setItem(key,value); 
} 

sto diventando "localStorage.prototype è nullo." Sto facendo questo correttamente? Grazie!

risposta

8

localStorage è un'istanza dell'oggetto Storage. Prova Storage.prototype.setItem2 o Object.getPrototypeOf(localStorage).setItem2

1

È possibile impostare direttamente dal:

localStorage.setItem2 = function(key, value) { 
    // do something 
} 

o utilizzare Storage.prototype

Prima di farlo, assicuratevi di non sovrascrivere qualsiasi proprietà esistente. Questo serve a prevenire qualsiasi sovrascrittura per futuri miglioramenti dell'API da parte dei browser.

+0

Non funziona in Chrome (versione 46.0.2490.80 m) come localStorage.setItem2 sta diventando una stringa della funzione, non la funzione stessa. – Moon

0

LocalStorage e sessionStorage Oggetti da interfaccia Storage.

È possibile prototipare l'interfaccia di archiviazione.

Storage.prototype.removeItems = function() { 
    for(item in arguments) { 
    this.removeItem(arguments[item]); 
    } 
};