Я пишу обложку localStorage, чтобы упростить вставку и извлечение данных, когда это необходимо для создания более надежных запросов.Проверка типов объектов в моем скрипте?
Мой сценарий здесь: https://github.com/OscarGodson/storageLocker
Пользователь моего сценария спросил меня, как он мог бы спасти Дата и я сказал ему правильную процедуру (сохранить new Date().getTime()
в формате JSON и оживить его с чем-то вроде new Date(json.time)
, но он пытался сделать hisStorage.save({'the_date':new Date()})
, но к его удивлению, когда он пошел, чтобы получить данные, которые были бы искажены.
Итак, мой вопрос: как я могу улавливать вставки вроде этого и других объектов (возможно, событий?), конвертировать их для пользователей, которые будут храниться в JSON, а также правильно восстановлены? Я работал над этим весь день, и я не могу понять, как проверить определенные типы объектов и соответственно конвертировать их через какой-либо коммутатор.
Сохранить и восстановить часть моего сценария выглядит следующим образом:
Сохранение данных:
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;
}
Получение данных:
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-get-the-name-of-an-objects-type-in-javascript – Stephen 2010-11-27 22:38:44