मैं इस तरह के एक डीबगर में भाग नहीं लेता हूं हालांकि ऐसा लगता है कि इस विशेष शैली को स्वयं लिखना बहुत कठिन होगा। वर्तमान ऑब्जेक्ट में गुजरने वाला एक मूल रिकर्सिव फ़ंक्शन और एक टेबल सेल भी लिखना शुरू करने के लिए, फिर बस जैसे ही जाएं।
ऊपर सर्कुलर संदर्भ टिप्पणी के लिए, इसे पहले से संसाधित किए गए ऑब्जेक्ट्स की एक सरणी रखकर आसानी से घुमाया जा सकता है। किसी ऑब्जेक्ट को प्रोसेस करने से पहले, जांचें कि यह पहले से ही सूची में है या नहीं। यदि ऐसा है, तो अपने आउटपुट के मान फ़ील्ड में "परिपत्र संदर्भ" जैसे कुछ के रूप में इंगित करें ... हालांकि आप ऑब्जेक्ट को पदानुक्रम को इंगित करना चाहते हैं।
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;
}
स्रोत
2009-06-03 20:41:42
दिलचस्प सवाल, हालांकि मुझे आश्चर्य है कि इस तरह का एक सुंदर प्रिंटर परिपत्र संदर्भों के लिए कैसे काम करेगा ... –