Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t getBoundingClientRect使用JSON.ToString序列化?_Javascript_Json - Fatal编程技术网

Javascript 为什么';t getBoundingClientRect使用JSON.ToString序列化?

Javascript 为什么';t getBoundingClientRect使用JSON.ToString序列化?,javascript,json,Javascript,Json,在开发工具控制台中尝试以下操作: JSON.stringify(document.body.getBoundingClientRect()) 输出是{},而不是合理的 有什么想法吗?JSON.stringify在内部使用一个名为的方法 您可以为对象指定它,或者在您的情况下,替代它: ClientRect.prototype.toJSON = function(){ return { top: this.top } } JSON.stringify(document.body.getBound

在开发工具控制台中尝试以下操作:

JSON.stringify(document.body.getBoundingClientRect())
输出是{},而不是合理的


有什么想法吗?

JSON.stringify在内部使用一个名为的方法

您可以为对象指定它,或者在您的情况下,替代它:

ClientRect.prototype.toJSON = function(){ return { top: this.top } }

JSON.stringify(document.body.getBoundingClientRect())

"{"top":-583}"

原因getBoundingClientRect返回textRectangle:,而不是js objectyeah,但其typeof objecttypeof不仅对js对象返回“object”,而且对大多数环境对象也返回“object”。我记得规范的这一部分,但懒得搜索prooflink)比如试试“typeof document.body”好吧,你有什么建议,只要通过访问clientrect?money补丁的道具手动将其转换成一个对象,就好了!!你们能更具建设性吗?:)@Caramiriel每个有经验的js开发人员都知道,更改本机原型通常是非常糟糕的做法。对于比todolist更大的应用程序来说,它就像一颗定时炸弹。有关问题: