众所周知,这copy
是 Chrome 和 Firefox(以及可能的其他浏览器)的开发者控制台中提供的一种特殊功能,用于将对象复制到剪贴板。
[1] [2]
那么为什么当我在 chrome 中复制一些高度复杂的对象以在我的文本编辑器中进行调试时,它的一部分会恢复为调用它的toString
函数,从而在未指定任何内容时导致“[Object object]”?
当对象包含循环引用时会出现此问题。例如:
var foo = {};
foo.bar = foo;
copy(foo);
Chrome (v54) 用它的字符串值替换对象。在 Firefox (v47) 中,如果对象具有循环引用,则将错误/* TypeError: cyclic object value */
复制到剪贴板。