拿这个对象:
x = { "key1": "xxx","key2": function(){return this.key1} }
如果我这样做:
y = JSON.parse( JSON.stringify(x) );
那么y将返回{“key1”:“xxx”}.有什么可以通过stringify传递函数吗?使用“ye goode olde eval()”创建一个附加功能的对象是可能的,但是打包它是什么?
解决方法
您不能打包功能,因为它们关闭的数据对于任何串行器都不可见.
即使Mozilla的不安也不能正确地关闭.
即使Mozilla的不安也不能正确地关闭.
你最好的选择是使用reviver和替代品.
http://developer.yahoo.com/yui/examples/json/json_freeze_thaw.html
The reviver function passed to JSON.parse is applied to all key:value pairs in the raw parsed object from the deepest keys to the highest level. In our case,this means that the name and discovered properties will be passed through the reviver,and then the object containing those keys will be passed through.