Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
{content:[Circular]}在JavaScript中是什么意思?_Javascript - Fatal编程技术网

{content:[Circular]}在JavaScript中是什么意思?

{content:[Circular]}在JavaScript中是什么意思?,javascript,Javascript,我的代码是: var chineseBox = {}; chineseBox.content = chineseBox; 它返回: { content: [Circular] } 这是什么意思?这是因为chineseBox.content对chineseBox的引用是同一个对象。 循环引用…您的对象包含循环引用。如果您试图打印(或序列化)此对象,则最终将进入无限循环 {content: {content: {content ... 相反,您的系统足够聪明,能够注意到循环并保护自身免受其影响

我的代码是:

var chineseBox = {};
chineseBox.content = chineseBox;
它返回:

{ content: [Circular] }

这是什么意思?

这是因为chineseBox.content对chineseBox的引用是同一个对象。 循环引用…

您的对象包含循环引用。如果您试图打印(或序列化)此对象,则最终将进入无限循环

{content: {content: {content ...

相反,您的系统足够聪明,能够注意到循环并保护自身免受其影响。

这意味着您已经定义了循环引用。换句话说,一个引用自身的变量

换句话说,,
chineseBox
等于
chineseBox.content
等于
chineseBox.content.content
等于
chineseBox.content.content.content
等于
chineseBox.content.content.content.content
等于
chineseBox.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content.content.content.content
chineseBox.content.content.content.content.content.content.content.content.content.content
等于
chineseBox.content.content.content.content.content.content.content.content.content.content.content
。。。等等

由于这种循环引用显然不能以任何有限的方式表示,因此显示了
[circular]
的结果。其他语言也有自己的术语,比如PHP,它显示
*递归*
。循环引用并没有什么特别的世界末日,只是它们在大多数情况下都是无用的


前后参照,如
A.thing=b;b、 事物=a可能很有用-同样,您可以编写
a.thing.thing.thing.thing.thing.thing
任意内容。

这不是javascript(Ecmascript)的一部分-chineseBox返回一个JSON对象,该对象指定内容是循环的(无论对chineseBox意味着什么),它是如何返回的?此处缺少某些内容。第二行代码将计算为右值,即
chineseBox
。与
chineseBox.content=5
计算为
5
的方法相同。有趣的是,有一种方法可以向JavaScript全局对象添加一个属性,该属性的键为“global”(因此您可以使用
.global
),并返回全局对象(循环引用)。然后,您就可以在任何地方调用
global
,因为JS全局对象的每个属性都可以仅通过其属性名访问,因此请求
global
将始终返回全局对象,而不管全局对象的实际名称是什么(“窗口”、“进程”、“任意”等)@切尔西你到底是怎么得到切尔西推特手柄的:D我印象深刻。谢谢!@numbers1311407这就是我的终端的样子:酷,那就是Node.js;它使用V8发动机。