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更大的应用程序来说,它就像一颗定时炸弹。有关问题: