I can’t understand why window is under self and self is under window object.
if you go to dev-tools or Firebug and write window you got DOM window object that self is under this object. The weird part is that window is under self again!
You can write
window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self
and still you get window object!
How?!
In a response to one of my comments:
Comment can be seen here: Is window really global in Javascript?