JavaScript和/或Google v8引擎是否有任何形式的持久框架?JavaScript/Google v8的持久框架
我想存儲(序列化)對象的整個圖形(包括,例如,函數)並稍後重新加載它。 JSON是不夠的,因爲它不允許存儲函數,只允許樹形結構(即沒有兩個對象引用同一個對象)。
因爲我希望我的程序的用戶能夠使用JavaScript來定製它,所以我需要能夠做到這一點(即不知道當時我寫程序嵌入v8的JavaScript代碼)但我需要存儲我的程序的狀態(包括定製的狀態)並稍後重新加載它。因此我需要存儲JavaScript引擎的狀態。
編輯:
實施例:
假設我們有以下代碼:
var obj = { a: 4, b: function (x) { return x + this.a; } }
// ...
if (...) { obj.a = 5; }
// ...
if (...) { var c = 1; obj.b = function (x) { return x + this.a + c; } }
// ...
// now I want to serialize obj
然後是(無關於程序的邏輯的任何元信息)可以序列化obj
並稍後反序列化它,以便obj.b (2)
在序列化之後提供與序列化之前相同的結果?
第二編輯:注意關閉。
我不明白你爲什麼需要堅持功能?因爲您可以從對象原型繼承中恢復函數(假設方法)。 –
你的問題對我來說並不完全清楚。儘管如此,我仍然試圖通過一個例子來說明我的問題。 – JohnB
爲什麼不只是存儲所有的JavaScript代碼,然後評估恢復它(就像從服務器回來)?或使用'toString()'來反序列化每個函數。再次評估無法避免。 –