我知道所有关于JSON.stringify或JSON.parse的含义,即一个序列化一个对象并将一个字符串反序列化为一个对象。这很棒!将JSON转换为JavaScript对象类型X
不过,我有以下情况:
var i = new MyMagicalObject();
var oi = JSON.parse(JSON.stringify(i));
console.log(i.numFields()); // this is fine
console.log(oi.numFields()); // this throws since Object has no method 'numFields'
基本上,我想对待OI为“MyMagicalObject”的一个实例,因为这是它是什么。
我确定在oi或其他设置原型上有一些魔力,但我对JavaScript很陌生。任何帮助,将不胜感激。
我喜欢这样 - 感觉比从对象文字到我的对象实例的属性更优雅。谢谢。 – FreeMemory 2014-09-29 09:03:50
如果你在其中一个道具中存放了某个功能,该怎么办? – Zim84 2014-09-29 09:13:27
@ Zim84不要。我意识到这是一个精辟的回应,但道具 - 根据定义 - 是属性,而不是函数,并且无论如何您都不能通过JSON流式传递函数。 – FreeMemory 2014-09-29 09:15:48