Javascript 暂时删除对象的toJSON fn成员

Javascript 暂时删除对象的toJSON fn成员,javascript,json,backbone.js,local-storage,parse-platform,Javascript,Json,Backbone.js,Local Storage,Parse Platform,我试图将变量存储在我的移动网站上的localStorage中,这样如果用户离开,它们的状态不会丢失。为了做到这一点,我将所有重要数据作为JSON存储在localStorage中。但是,数据的某些部分是解析对象(主干模型),并具有toJSON函数。为了不引人注目地存储数据,我需要删除toJSON,以便对象按原样存储,然后重新附加它。但是,我的代码不起作用: var toJSON = null; if(obj && ob

我试图将变量存储在我的移动网站上的localStorage中,这样如果用户离开,它们的状态不会丢失。为了做到这一点,我将所有重要数据作为JSON存储在localStorage中。但是,数据的某些部分是解析对象(主干模型),并具有
toJSON
函数。为了不引人注目地存储数据,我需要删除
toJSON
,以便对象按原样存储,然后重新附加它。但是,我的代码不起作用:

                var toJSON = null;
                if(obj && obj.toJSON) {
                    toJSON = obj.toJSON;
                    delete obj.toJSON;
                }

                window.localStorage[localStorageIndex] = JSON.stringify(obj);

                if(toJSON)
                    obj.toJSON = toJSON;
你知道为什么吗? 谢谢。

试一试:

obj.toJSON = undefined;

window.localStorage[localStorageIndex] = JSON.stringify(obj);

delete obj.toJSON;

这会暂时将原型的
toJSON
隐藏为
undefined
,导致
stringify()
跳过它。

我学会了不使用本地存储来存储重对象…

你确定
toJSON
是对象的一种方法,而不仅仅是对象原型的方法吗?这真的很奇怪,对象原型的属性不应该被字符串化。我不确定,但它可能是对象原型的方法。它失败时出现
未定义不是函数错误。我还尝试将toJSON设置为空函数,
function(){}
,但也失败了。我认为字符串化和解析对象是低效和不切实际的,所以我将存储指向所需数据的指针。