考慮下面的javascript代碼,爲什麼array.push()似乎推動無限次?
>> a = [1, 2]
Array [ 1, 2 ]
>> a.push(a)
Array [ 1, 2, Array[3] ]
擴大陣列,a
,我們得到了無限深度的陣列。 (在Firefox開發者控制檯上查看)
Array[3]
| 0: 1
| 1: 2
2: Array[3]
| 0: 1
| 1: 2
| 2: Array[3]
| 0: 1
| 1: 2
| 2: Array[3]
....
[1]爲什麼要多次追加?
[2]它停止的深度是多少?
循環引用也許可以解釋這一點。 – Manish
要理解遞歸,您必須先了解遞歸。 –