This entire thing is one giant closure, and that's because most of the time when you run code and other languages, for example, you cannot access variables outside of a function inside of that function, that is just not always possible in other languages.