我有使類似js對象更加智能的JavaScript類。我將這些對象序列化到localStorage並恢復它們。但是這些恢復的對象不是一個類的實例。恢復的對象只是屬性集。所以,我確實設置了這些對象的__proto__。
我讀過使用__proto__是錯誤的(緩慢和不贊成)的方法來使對象更聰明。如何將JSON.parse對象設置爲使對象成爲類的實例?
這些問題的智能解決方案是什麼?如何恢復JavaScript對象,以便它們成爲相應類的實例?
var showMarks = function (locals) {
var myMarks = locals.myMarks = locals.myMarks.slice(0, 120);
for (var i = myMarks.length - 1; i >= 0; i--) {
myMarks[i].__proto__ = Mark.prototype;
}
}
showMarks(JSON.parse(localStorage.myMarks));
設置屬性後,我也需要Mark.init,並將新創建的Mark對象放回數組。 –
@DmitryKaigorodov更新了我的答案,告訴我我是否錯了 – axelduch