gpt4 book ai didi

javascript - 为什么 console.log(window) 有效但 JSON.stringify(window) 无效,我怎么能打败它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:47:09 24 4
gpt4 key购买 nike

如果我在控制台输入:

 console.log(window)

我使用展开按钮获取 window 中的所有对象。

但是如果我尝试同样的方法:

JSON.stringify(window) 

我进入 Firefox:

Error: Permission denied to access property 'toJSON'

在 chrome 中:

TypeError: Converting circular structure to JSON

这是唯一发生这种情况的情况吗?鉴于 console.log()JSON.stringify() 的工作方式不同,我能否访问并仍然对 console.log() 的对象进行字符串化> 设法显示?

最佳答案

那是因为window有循环引用(比如大多数情况下window.self引用的是window),无法转换JSON,否则会变成死循环。

这可能发生在任何对象上,而不仅仅是在 window 上:

var foo = {
bar: 'bar'
};
JSON.stringify(foo); // works fine

var foo = {
bar: foo
};
JSON.stringify(foo); // circular reference -> crashes

关于javascript - 为什么 console.log(window) 有效但 JSON.stringify(window) 无效,我怎么能打败它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com