2012-02-25 4 views
9

В консоли Firebug,Простой код JavaScript разбился Firefox

var a = []; 
a[0] = a; 

разбитого Firefox!

Почему?

редактировать:

  1. Это утверждение логически правильно, и нет ничего плохого ссылки рекурсию. Для этого это ошибка в браузером Firebug.
  2. Прекрасно работает в Chrome и Opera.
  3. Я использую последние официальные версии Firebug и Firefox

редактировать 2: Он врезается в Firebug консоли и работает в родном веб-консоли Firefox

+0

Очень интересно, нажать массив в себя. Я думаю, что это бесконечная рекурсия, поэтому она разбивает FF и, вероятно, сбой любого браузера. В какой цели вы намерены использовать такой массив? – Teemu

+0

@GGG Хм, при назначении первого массива в первый индекс (или любой индекс) того же массива назначение продолжается навсегда. Разве это не крушение? – Teemu

+0

@Teemu nope, попробуйте в консоли ... он создает объект со свойством, ссылающимся на него, но это не редкость ('window.self',' window.top' и т. Д.). –

ответ

4

Я думаю, что это ошибка firebug.

Он отлично работает во встроенной консоли firefox (ctrl + shift + k), хром-консоли и операционной консоли.

Я бы написал отчет об ошибке с помощью firebug.

+1

Ошибка: http://code.google.com/p/fbug/issues/detail?id=3663 – Kato

2

Там нет ничего плохого делать это, однако вам строят структуру данных, которая сама «содержит» (фактически содержит ссылку на себя).

При отображении такого рода структуры, если код не был написан мышления этой возможности вполне вероятно, что отладчик будет рекурсию навсегда (до SO :-)), пытаясь добраться до конца бесконечной цепи

a[0][0][0][0]... 
+2

Интересно, что он отлично работает в Chrome, который, кажется, только проверяет свойства объекта после его расширения. Теперь мне интересно, как «top.top.top ...» не разбивает firebug. –

+0

Давай! он НЕ создает [0] [0] ....! Эта ссылка действительна, но для нее нет отдельного объекта, она ссылается на тот же __a__ – Viller

+0

@Viller: никто этого не сказал. Проблема в том, что алгоритм, который Firebug использует для преобразования в строковое представление, способен обрабатывать массивы саморегуляции. – 6502

Смежные вопросы