Ich schreibe einen LocalStorage-Wrapper, um das Einfügen und Abrufen von Daten einfacher zu machen, wenn Sie robustere Abfragen benötigen.Prüfen auf Arten von Objekten in meinem Skript?
Mein Skript ist hier: https://github.com/OscarGodson/storageLocker
Ein Benutzer von meinem Skript mir gefragt, wie er ein Date retten kann, und ich sagte ihm, das richtige Verfahren (new Date().getTime()
zum JSON speichern und wieder zu beleben sie mit so etwas wie new Date(json.time)
aber er versuchte, hisStorage.save({'the_date':new Date()})
zu tun, aber zu seiner Überraschung, als er ging, um die Daten zu bekommen, wäre es falsch.
Also, meine Frage ist, wie kann ich Einsätze wie diese und andere Objekte fangen (vielleicht Ereignisse?), konvertieren sie für die Benutzer in der JSON gespeichert und auch richtig abgerufen werden? Ich habe den ganzen Tag daran gearbeitet, und ich kann nicht herausfinden, wie zu überprüfen bestimmte Arten von Objekten und konvertieren entsprechend über einen Schalter Fall. Die
speichern und ein Teil meiner Skript abrufen sieht wie folgt aus:
Speichern von Daten:
storageLocker.prototype.save = function(value){
var json = JSON.parse(localStorage.getItem(this.catalog));
if(json == null){json = {};}
for(var key in value){
if(value.hasOwnProperty(key)){
json[key] = value[key];
}
}
localStorage.setItem(this.catalog,JSON.stringify(json));
return this;
}
Abrufen von Daten:
storageLocker.prototype.get = function(value){
json = JSON.parse(localStorage.getItem(this.catalog));
if(json == null){json = {};}
if(value){
if(typeof json[value] !== 'undefined'){
return json[value];
}
else{
//Makes it so you can check with myStorage.get('thisWontExist').length
//and it will return 0 and typeof will return object.
return new Object('');
}
}
else{
return json;
}
};
http://stackoverflow.com/questions/332422/how-do-i-get-the-name-of-an-objects-type-in-javascript – Stephen