Фон
Я пытаюсь реорганизовать некоторый длинный, уродливый Javascript (позорно, это мой собственный). Я начал проект, когда начал изучать Javascript; это был отличный опыт в обучении, но в моем коде есть некоторый мусор, и я использую некоторые довольно плохие практики, среди которых главное загрязнение глобального пространства имен/объекта (в моем случае, объекта window
). В моих усилиях по смягчению указанного загрязнения, я думаю, было бы полезно его измерить.
Подход
Мой инстинкт кишки состоял в том, чтобы просто подсчитать количество объектов, прикрепленных к объекту window
, до загрузки любого кода, снова после загрузки сторонних библиотек и, наконец, после моего кода. Затем, когда я рефакторинг, я попытался бы уменьшить увеличение, соответствующее загрузке моего кода). Для этого я использую:
console.log(Object.keys(window).length)
в разных местах моего кода. Кажется, это работает нормально, и я вижу, что число растет, особенно после загрузки моего собственного кода. Но...
Проблема
Просто посмотрев содержимое объекта window
в консоли Chrome Developer, я вижу, что он не подсчитывает все, что привязано к объекту. Я подозреваю, что это не включает в себя некоторые более фундаментальные свойства или типы объектов, независимо от того, принадлежат ли они браузеру, библиотеке или моему собственному коду. В любом случае, может ли кто-нибудь подумать о более точном и точном способе измерения глобального загрязнения пространства имен, которое могло бы помочь в рефакторинге?
Спасибо заранее!