当前位置: 首页 > 面试题库 >

是否有可能让JSON.stringify保存功能?

顾永福
2023-03-14
问题内容

拿这个对象:

x = {
 "key1": "xxx",
 "key2": function(){return this.key1}
}

如果我这样做:

y = JSON.parse( JSON.stringify(x) );

然后y将返回{ "key1": "xxx" }。通过stringify传递函数有什么能做的吗?使用“ ye goode olde
eval()”可以创建具有附加功能的对象,但是打包该对象又是什么呢?


问题答案:

您不能打包函数,因为任何序列化程序都看不到函数关闭的数据。甚至Mozilla uneval也无法正确打包闭包。

最好的选择是使用复活器和替换器。

https://yuilibrary.com/yui/docs/json/json-freeze-
thaw.html

传递给JSON.parse的reviver函数将应用于从最深的密钥到最高级别的原始解析对象中的所有key:value对。在我们的例子中,这意味着名称和发现的属性将通过齐整器传递,然后包含那些键的对象将通过。



 类似资料:
  • 问题内容: 如何检查jQuery中元素的存在? 我当前的代码是这样的: 有没有更优雅的方式来解决这个问题?也许是插件还是功能? 问题答案: 在JavaScript中,一切都是“真实的”或“虚假的”,对于数字(和NaN)而言,一切都是其他。所以你可以这样写: 您不需要那部分。

  • 问题内容: SASS具有一个称为的功能,该功能允许选择器继承另一个选择器的属性,但不复制属性(如mixins)。 LESS是否也具有此功能? 问题答案: 是的,Less.js推出的V1.4.0。 LESS没有实现SASS和Stylus使用的at- rule()语法,而是实现了伪类语法,这为LESS的实现提供了灵活性,使其可以直接应用于选择器本身或在语句内部。因此,这两个都将起作用: 要么 此外,您

  • 问题内容: 目前,我正在开发中使用mysql 5.7,在生产中使用5.6。每次我在开发中使用group by运行查询时,都会收到类似“错误代码:1055。SELECT列表的表达式#1不在GROUP BY中”的错误。 这是查询。 为了解决这个问题,我使用5.7 ANY_VALUE中的mysql函数,但是主要问题是它在mysql 5.6中不可用 因此,如果我修复开发的sql语句,我将在生产中出现错误。

  • 问题内容: 我以这种格式定义了一个.py文件: foo.py 我从另一个文件导入它: main.py 是否可以列出所有功能名称,例如? 感谢您的帮助,我为我想要的课程做了一堂课,如果有建议请发表评论 问题答案: 做这些事情的最干净的方法是使用检查模块。它具有将谓词作为第二个参数的函数。您可以用作谓词。 现在,将是一个元组列表,其中第一个元素是函数的名称,第二个元素是函数本身。

  • 问题内容: 实现自动保存功能的最佳javascript库或库的插件或扩展是什么? 特定的需求是能够“保存”数据网格。考虑gmail和Google Documents的自动保存。 如果车轮已经被发明,我不想重新发明。我正在寻找神奇的autoSave()函数的现有实现。 自动保存:推送到保存到持久性存储(通常是数据库)的服务器代码。服务器代码框架不在此问题的范围内。 请注意,我不是在寻找Ajax库,而

  • 问题内容: 我们遇到了一个奇怪的问题,其中似乎有两个线程正在调用,然后在方法内部永远等待。从外部看,内部看起来像是一个僵局。 到目前为止,我们只看到这种情况发生一次。 谁能想到任何可能导致这些症状的东西? 编辑 :相关线程的线程转储在这里: 问题答案: 可能不是您想要的答案,但这可能是JVM错误。看到 http://bugs.sun.com/bugdatabase/view_bug.do?bug_