2017-01-11 5 views
1

ブラウザの更新後にさらに使用するために、sessionという名前のオブジェクトをlocalStorageに格納します。しかし、私はそれにsession.getUserCount()、session.getPeerIds()などのような多くの関数が関連付けられている。私はこれをローカルストレージに格納するために.toString()を使用しています。これは、session.id、session.initiatorなどの直接のvatiablesを取得できるようになりましたが、すべての関数がnullを返すようになりました。関数の関数または値を保存してブラウザの更新後に再利用する方法

すべての機能の値を適切な方法で保存するのを手伝ってください。

ありがとうございます。

答えて

1

あなたは、内側data JSONオブジェクト、fromJSONSessionクラス

toJSONメソッドを実装する必要がありますしかし、あなたはdataオブジェクトのみnumberstringnullarrayとプレーンobject

class Session { 
 
    constructor(id) { 
 
     this.data = { 
 
      id: id, 
 
      createdAt: Date.now(), 
 
      userCount: 0, 
 
      user: { 
 
       name: 'foo', 
 
       likeIds: [1, 56] 
 
      } 
 
     } 
 
    } 
 
    getUserCount() { 
 
     return this.data.userCount; 
 
    } 
 
    
 
    fromJSON(data) { 
 
     this.data = data; 
 
    } 
 

 
    toJSON() { 
 
     return this.data; 
 
    } 
 
} 
 

 

 
// Usage 
 
var session = new Session(1); 
 
localStorage.abc = JSON.stringify(session); 
 

 
var restoredSession = new Session(); 
 
try { 
 
    restoredSession.fromJSON(JSON.parse(localStorage.abc)); 
 
} catch (e) { 
 
    console.error('JSON parse error'); 
 
} 
 

 
console.log(restoredSession);
を救うことができることを覚えておく必要があります

関連する問題