После 30-го сбоя Firefox (FireBug) во время отладки (я использую Ubuntu), я решил использовать Chrome. По большей части это здорово. У меня только одна большая проблема. В FireBug, когда вы что-то записываете в консоль, вы всегда получаете строковое представление объекта. В результате имело смысл реализовать toString на большинстве ваших прототипов, позволяя отображать наиболее важную информацию в любое время, когда объект появляется где-нибудь в панелях разработчика или консоли.
Если мой код регистрирует следующее:
console.log(bill_gates);
Я не хочу, чтобы первое представление моего объекта в консоли было:
Object
когда это могло быть:
Person{Bill Gates, Microsoft Founder, dob: Oct 28}
И мне не нужно было дважды регистрировать все, чтобы компенсировать этот недостаток:
console.log(bill_gates, bill_gates.toString());
Кроме того, двойное ведение журнала не помогает, когда вы углубляетесь в объект и обнаруживаете, что ваш объект состоит из других объектов, которые все помечены как «Объект».
Представьте, что вы идете на вечеринку, где на всех именных значках написано «Человек». Я хочу немного подробнее об этом человеке, возможно, «Нед Кэмпбелл, агент по продаже недвижимости» или «Сью Брэдшоу, отдел страховых продаж». В FireBug ваши объекты имеют специальные значки имен (на основе вашей реализации toString). В Chrome все ваши объекты носят именные значки с надписью «Объект».Вам нужно потратить время на опрос объекта (углубление в его свойства и методы), чтобы выяснить, с каким объектом вы имеете дело. Какая трата.
Для меня это ГЛАВНАЯ оплошность в дизайне превосходных в остальном Chrome Devtools. Есть ли способ (возможно, расширение) заставить Devtools показывать строковые представления объектов (где бы они ни появлялись), как это делает FireBug?