[英]Rebuilding an object serialized in JSON
在我的Web應用程序中,我使用JSON.stringify()序列化對象以進行存儲, 如此處所述 。 這很棒,我可以輕松地從JSON字符串重新創建對象,但是我丟失了所有對象的方法。 有沒有一種簡單的方法將這些方法添加回我正在忽略的對象 - 可能涉及原型設計,我不太熟悉的東西?
或者只是為了這樣做而創建我自己的精細功能?
編輯:理想情況下,我正在尋找類似的東西:
Object.inheritMethods(AnotherObject);
在調用JSON.parse后獲得對象后,您有很多選擇。 這是一些例子。
混入
有很多技術可以做到這一點,本文很好地介紹了這一點 。 但是,這是一個不需要任何新語言功能的簡單示例。 請記住,對象本質上只是一個映射,因此JS可以輕松地向對象添加其他屬性。
var stuffToAdd = function() { this.name = "Me"; this.func1 = function() { print(this.name); } this.func2 = function() { print("Hello again"); } } var obj = JSON.parse("{}"); stuffToAdd.call(obj);
原型
使用Felix提到的Object.create方法。 由於這僅在ES5中提供,因此您可能需要使用墊片來保證其可用性。
老問題,但我今天在搜索這個問題時找到了它。 我在其他地方找到了一個解決方案,並且已經找到了解決方案(ES6):
Object.assign(new myclass(),jsonString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.