我正在使用JavaScript数组,并且不小心将数组推送到自身。数组懒洋洋地插入对自身的引用,而不是打破溢出异常。在以下操作中:
x = [], x.push(x)
我会相信地插入对自身的引用,但是没有运行时中断。它将产生无限的表示:
浏览器永远不会冻结或破坏,因为价值是"""""""点击。
提前致谢。
答案 0 :(得分:1)
虽然图形表示可能显示无限的“数组”,但实际上你有一个递归的,所以,你在内存中只有1个first
元素包含一个数组(但只是一个指向一)。如果向第一个数组添加第二个成员,则所有成员现在应该显示相同的成员,因为它们是相同的。
我不知道它是否可以......但我知道javascript允许你写出无意义的代码。
虽然看似不合理,但是“设置”表示的概念,例如你可以:
这些可以用于分组控件......
总的来说,自我反思通常是“非一般性的”,主要是因为在计算机中你已经对变量进行了反思(因此无需额外的自我反馈),并且通常人们组织他们的程序来促进某些事情......无论是更少的操作,还是维护,或者是他们所做的事情。