Javascript 使用不带JSON的localStorage存储对象

Javascript 使用不带JSON的localStorage存储对象,javascript,jquery,html,Javascript,Jquery,Html,我需要能够使用localStorage或任何真正有效的工具保存用户的信息。我对localStorage了解不多,但我认为为了在其中存储对象,我需要在object maker中使用一个函数。也许我错了,但这就是我发帖的原因 我认为可以使用localStorage.username(this.username)来存储用户名,但现在我需要了解如何在不使用JSON stringify的情况下存储整个对象。 localStorage.newPlayer() 如果您需要查看完整的代码,请告诉我您能解释一下

我需要能够使用localStorage或任何真正有效的工具保存用户的信息。我对localStorage了解不多,但我认为为了在其中存储对象,我需要在object maker中使用一个函数。也许我错了,但这就是我发帖的原因

我认为可以使用localStorage.username(this.username)来存储用户名,但现在我需要了解如何在不使用JSON stringify的情况下存储整个对象。 localStorage.newPlayer()


如果您需要查看完整的代码,请告诉我

您能解释一下为什么不接受
JSON.stringify(new Player())

如果您不能使用JSON,只需将每个名称/值对分别存储到
localStorage
中,然后将它们分别取出,或者构建一个自定义字符串以放入
localStorage
,但是
JSON.stringify()
确实最适合您的场景

我认为您只需要将其从播放器功能中删除:

this.implement = function() {
    $('#user').text(this.username).addClass('playerName').data('player', self);
    $('#username').text("Username: " + this.username);
    $('#lvl').text("Level: " + this.lvl);
    $('#exp').text("Experience: " + this.exp);
    $('#expNeeded').text("Experience Needed: " + this.expNeeded);
    $('#gold').text("Gold: " + this.gold);
    $('#hp').text("HP: " + this.fullLife);
    $('#attack').text("Attack: " + this.atk);
    $('#defense').text("Defense: " + this.def);
    $('#speed').text("Speed: " + this.spd);
    $('#nextLevel').text("Next Level: " + this.nextLevel);
};
this.implement();
以便将播放器序列化为JSON对象,然后将其设置为本地存储。

然后,该代码将下移到
if
语句的true块中,对
的引用将被
newPlayer
对象实例替换

看这把小提琴:


可能重复的请澄清您的具体问题。有什么意外吗?这是什么?当我切换页面时,它仍然会断开。我需要存储变量,并且能够在另一个页面上调用,有没有其他方法可以做到这一点?您需要解释“中断”的含义。我的小提琴显示了在localStorage中设置的对象,因此您只需要使用
var player=JSON.parse(localStorage.getItem(“player”)在下一页。在主页上的promp上点击ok后,如果我在这之后进入battle页面,我很抱歉没有提供详细信息,但我从未使用过JSON或localStorage,我真的不知道您需要知道什么来解决它。问题可能与在localStorage中存储JSON无关。@Shniper无论您遇到什么问题与正确存储的实际数据无关。如果您查看我提供的屏幕截图,您不仅可以看到网页上的数据,还可以看到存储在localStorage中的对象以及该数据。问题很可能是,既然数据已经以某种方式存储,那么您获取数据的代码就不正确了。请把那个密码寄出去。
this.implement = function() {
    $('#user').text(this.username).addClass('playerName').data('player', self);
    $('#username').text("Username: " + this.username);
    $('#lvl').text("Level: " + this.lvl);
    $('#exp').text("Experience: " + this.exp);
    $('#expNeeded').text("Experience Needed: " + this.expNeeded);
    $('#gold').text("Gold: " + this.gold);
    $('#hp').text("HP: " + this.fullLife);
    $('#attack').text("Attack: " + this.atk);
    $('#defense').text("Defense: " + this.def);
    $('#speed').text("Speed: " + this.spd);
    $('#nextLevel').text("Next Level: " + this.nextLevel);
};
this.implement();
//global function

Storage.prototype.setObject = function(key, value) {
    this.setItem(key, JSON.stringify(value));
  }

  Storage.prototype.getObject = function(key) {
    var value = this.getItem(key);
    return value && JSON.parse(value);
  }


//page 1 code 

//your data
 var arrayObj = [{
    name: 'user4',
    userid: '1111',
    msg: 'hello world!'
  }, {
    name: 'user2',
    userid: '2222',
    msg: 'hello universe!'
  }];







    localStorage.setObject('userInfo', arrayObj);

// page 1 code ends here


// page 2 code

    if (window.localStorage) {

        var $val = localStorage.getObject('userInfo', arrayObj);
    }

// returns $val =   [{name: 'user4',userid: '1111',msg: 'hello world!'}, {name: 'user2',userid: '2222',msg: 'hello universe!'}];