Hola:
Se puede implementar, pero debes tener cuidado con los bucles infinitos, porque por ejemplo el objeto window, tiene el subobjeto window.window, y luego window.window.window... se usa el bucle for-in, te paso un ejemplo:
Nuevo destripador
Saludos