Я просматриваю объекты в javascript с целью обучения. Прямо сейчас, что сводится к выплескиванию каждого свойства в первом объекте, функция дается и рекурсирует на любые дочерние объекты, которые он находит (включая функции).Рекурсия в объекты без бесконечного цикла
Использование оконного объекта в качестве примера, функция застревает в бесконечном цикле, поскольку window.top указывает на окно. Как лучше всего отслеживать, какие объекты я уже прошел, чтобы избежать их повторения?
В JS вы можете добавлять свойства к любому объекту, даже к родным. Таким образом, вы можете сказать 'currentObj.didProcess = true'. 'currentObj' может быть' window', экземпляром 'HTMLElement' или функцией. – marekful
Мне нравится эта идея. –
Существует небольшая вероятность конфликта, потому что какой-то другой код может создавать свойства с тем же именем. Вы также должны убедиться, что создаваемые вами свойства будут удалены после выполнения кода, который включает обработку возможных ошибок. Я бы подумал об изменении таких объектов как плохой практики в целом, поскольку это потенциально влияет на другой код. –