Bu tür bir hata ayıklayıcısına rastlamamış olmama rağmen, bu özel stilin kendi başına yazması çok zor gibi görünmüyor. Sadece mevcut nesneyi geçen basit bir özyinelemeli fonksiyon ve yazı yazmaya başlamak için bir tablo hücresi, o zaman sadece siz yapın.
Yukarıdaki döngüsel referans yorumu için, daha önce işlediğiniz nesnelerin bir dizisini tutarak kolayca atlatılabilir. Bir nesneyi işlemeden önce, listede olup olmadığını kontrol edin. eğer öyleyse, çıktınızın değer alanında, "döngüsel referans" gibi bir şey olduğunu belirtin, ancak nesneyi hiyerarşiyi göstermek istersiniz.
prettyprint(object, processedObjects)
{
if (processedObjects.contains(object))
return 'circular refernece';
processedObjects.push(object);
create newTable;
for (var in object)
{
row = newTable.addRow();
row.cell1.value = var;
if (typeof object[var] is object)
row.cell2.value = prettyprint(object[var], processedObjects);
else if (typeof object[var] is function)
row.cell2.value = '[function]';
else
row.cell2.value = object[var].toString();
}
return newTable;
}
İlginç bir soru, nasıl bu kadar güzel bir yazıcının dairesel referanslar için çalışacağını merak ediyorum ... –