如何在本地存储中存储对象数组并在检索后访问对象的方法?

时间:2019-03-22 03:39:47

标签: javascript

我的对象类:

 class Dog {

        constructor(name) {

            var _name;

            _name = name;

            this.getName = function () {
                return _name;
            }
        }
    }

我在点击事件连线上有一个按钮,用于以下功能:

            document.getElementById("btnTest").onclick = function () {

            var animals = [];

            var name = document.getElementById("name").value;
            var bday = document.getElementById("bday").value;
            var age = document.getElementById("age").value;
            var desc = document.getElementById("description").value;

            animals.push(new Dog(name, bday, age, desc));

            var serializedAnimals = JSON.stringify(animals);

            window.localStorage.setItem("list",serializedAnimals);

            var list = JSON.parse(window.localStorage.getItem("list"));

            console.log(list.getName());
        }

但是,当我通过单击按钮触发功能时,会出现以下错误控制台消息框:

TypeError:list.getName不是函数

我在做什么错?

1 个答案:

答案 0 :(得分:0)

方法不会被JSON.stringify序列化

class Dog {

      constructor(name) {

          var _name;

          _name = name;

          this.getName = function () {
              return _name;
          }
      }
  }

var animals = [];

animals.push(new Dog('name', 'bday', 'age', 'desc'));

var serializedAnimals = JSON.stringify(animals);

console.log(serializedAnimals);

console.log(JSON.stringify({ func: () => {} }));