簡體   English   中英

如何將帶有方法的JavaScript對象存儲在本地存儲中?

[英]How to store a JavaScript object with methods in local storage?

我正在創建一個神經網絡庫,其中包含存儲在數組中的嵌套對象。 我需要能夠將這些對象的狀態保存到本地存儲中。 我試圖使用JSON.stringify將最高級別的網絡對象轉換為我可以保存的東西,但是當我將JSON.parse()返回時,它不包含方法。

可以在這里找到代碼。

在此先感謝您的幫助。

他們中的大多數人不建議在JSON對象中保留僅用於攜帶數據的功能(行為)。 如果要使用功能序列化對象,則需要重寫它們,以下代碼將為您提供幫助。

這將幫助您序列化功能。

var json = function(obj){ return JSON.stringify(obj, function(key, value) {
  if (typeof value === 'function') {
    return value.toString();
  } else {
    return value;
  }
})};

我創建了一個對象rama進行測試, json(rama)的輸出為

 "{\"myName\":\"Ramasamy Kasiviswanathan\",\"myfunction\":\"function(input){\\nconsole.log('input', input);\\n}\"}"

存儲在localStorage中,

localStorage.setItem('ramaLocal',json(rama));

從LocalStorage檢索值,

 ramadeserialize = eval("JSON.parse(localStorage.getItem('ramaLocal'))");

O / P為:

Object { myName: "Ramasamy Kasiviswanathan", myfunction: "function(input){\nconsole.log('input', input);\n}" }

參考: json.stringify不處理對象方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM