【发布时间】:2015-09-15 21:53:34
【问题描述】:
我发现如果你为一个对象定义了.toJSON() 函数,那么它就被用来对一个对象进行字符串化,而不是默认的。
有没有办法忽略这个被覆盖的函数并运行默认的字符串化过程?
【问题讨论】:
-
我想如果你真的想覆盖 toJSON 但仍然想运行默认的 stringify,你可以遍历它们的对象并打印键?不过,您几乎可以自己实现 stringify
-
问题是 - 我使用 Parse.com 服务的第 3 方库,该库可用于其对象。现在我需要获取一个正在使用的对象的原始表示,以便将其作为模拟对象传递给我的单元测试。但是该库定义了它的 .toJSON() 函数,出于测试目的,我想忽略它。
-
如果是调试用的,可以用console.log(obj)吗?
-
是的,我可以在 Chrome 控制台中将其视为树,但无法将其复制并粘贴为字符串。我尝试了这个技巧superuser.com/questions/777213/…,但它似乎用相同的方法处理它,所以我得到了用 .toJSON() 处理的结果
-
丑陋的黑客:
obj.toJSON = undefined
标签: javascript json default overriding stringify