Added top-level anonymous self-executing function

It is idomatic to wrap your code in a big anonymous function, this prevents your local functions like `objSome` from bleeding into the global scope.  Subsequently you'll need to export any global variables you need to access elsewhere.

The syntax of the anonymous execution scope is very much a matter of taste, I like to use an arg called scope to export any  variables, ( here scope is window ) this makes transporting the code to another environment easier: for example, node.js does not have a `window` global.