JSON.stringify& DOMRect

时间:2017-02-06 04:12:54

标签: javascript json dom

出于测试目的,我决定测试一个我写的函数,它返回一个DOMRect对象。

在控制台中我可以看到DOMRect是完整的并且具有其所有属性。但是,当我有JSON.stringify(rect)(其中rect是带有返回结果的变量)时,我得到空对象{}

我不知道这是否意味着DOMRect有什么特别之处,或者JSON.stringify是否做了我认为不会做的事情,即序列化对象的属性

问题是:为什么JSON.stringify不会在DOMRect上运行(并且在其他一些对象上也会失败?

FWIW,我正在测试当前的Mac,并尝试过Firefox和Webkit。

3 个答案:

答案 0 :(得分:2)

JSON.stringify()不能用于任何DOM元素 - 您需要提取所需的数据并放入Object中。以前在DOM节点上JSON.stringify()用于导致此错误:

TypeError: Converting circular structure to JSON

现在Chrome,Firefox等都输出"{}"

答案 1 :(得分:-1)

JSON.stringify仅适用于结构化数据。它不允许函数的字符串化。

答案 2 :(得分:-1)

DOMRect是一个函数因此,不允许使用JSON.stringify(),因为DOMRect包含“虚拟”属性。 JSON.stringify()依赖于Object.key(attr)。