Javascript 在本地存储中保存数据

Javascript 在本地存储中保存数据,javascript,Javascript,我正在尝试将数据保存到本地存储。通过构造函数创建“类”,并尝试将get和set方法放入其中。但当我点击我的按钮时(点击按钮时,数据必须保存),什么都没有发生(在开发者工具的“资源”选项卡中)。当我尝试通过JSON.stringify保存简单数据时,一切都成功了 (function() { window.onload = function() { document.getElementById('buttonCreate').onclick = function() { v

我正在尝试将数据保存到本地存储。通过构造函数创建“类”,并尝试将get和set方法放入其中。但当我点击我的按钮时(点击按钮时,数据必须保存),什么都没有发生(在开发者工具的“资源”选项卡中)。当我尝试通过JSON.stringify保存简单数据时,一切都成功了

(function() {
  window.onload = function() {
    document.getElementById('buttonCreate').onclick = function() {
      var topicValue = document.getElementById("create-topic").value;
      var statusValue = document.getElementById("create-status").value;
      var descriptionValue = document.getElementById("create-description").value;
      var storage = new Storage();
      var ticket = {
        topic: topicValue,
        status: statusValue,
        description: descriptionValue
      };
      storage.set("Item", item);
    }
  }
})();
“类别”存储:


根据Mike McCaughan的评论,您引用了一个未定义的变量

使用严格模式会捕捉到这一点

用于处理存储中项目的密钥中还有另一个错误:

'items' !== 'Item'

还有,;代码中没有类。

代码的确切问题是存储密钥以及试图存储的未定义的

  • 它将其存储在
    键中,并编写get方法从键
    中获取它
  • 通过查看给定的代码,您应该假设存储
    ticket
    对象<代码>存储.设置(票据)
建议的更好方法:传递
实例化
存储
对象,然后相应地使用它

例如
var存储=新存储('Item')

“类别”存储:

要获取存储在localstorage中的票证值,请执行以下操作:

var storage = new Storage('ticket');
var ticket = storage.get();

您的getter正在引用此。_ITEMS\u描述符
,但您的setter没有。
storage.set(“Item”,Item)
。。。但是没有定义
变量。^修复后,我认为“类”意味着它们有一个构造函数。而且,关键是什么并不重要;他们说这根本不节约。尽管这在以后尝试使用
get
时会成为一个问题。虽然这可能是一个更好的设计,取决于OPs的需要,但这并不能解决问题。原始代码的确切问题是存储密钥。它将其存储在
项中
,并编写get方法从
项中获取它:)不,不是。他们甚至没有使用
get
。问题是他们引用的变量(
)不存在。你是对的,当前的
get
在他们使用时会被破坏,但这是另一个问题。目前,他们甚至无法使用
set
功能保存任何内容,无论键是什么。
(function() {
  window.onload = function() {
    document.getElementById('buttonCreate').onclick = function() {
      var topicValue = document.getElementById("create-topic").value;
      var statusValue = document.getElementById("create-status").value;
      var descriptionValue = document.getElementById("create-description").value;
      var storage = new Storage("ticket");
      var ticket = {
        topic: topicValue,
        status: statusValue,
        description: descriptionValue
      };
      storage.set(ticket);
    }
  }
})();
function Storage(key) {
  this._ITEMS_DESCRIPTOR = key;
}
Storage.prototype.get = function() {
  var fromStorage = localStorage.getItem(this._ITEMS_DESCRIPTOR);
  return fromStorage ? JSON.parse(fromStorage) : {};
};
Storage.prototype.set = function(item) {
  localStorage.setItem(this._ITEMS_DESCRIPTOR, JSON.stringify(item));
};
var storage = new Storage('ticket');
var ticket = storage.get();