Pseudo example code:

Code:
var GO = (function(go) {
	
	go = go || {};
	
	go.init = function(x) {
	   
	   console.log(x);
	   
	};
	
	go.hello = function(msg) {
	   
	   console.log('Hello: ' + msg);
	   
	};
	
	return go;
	
}(GO || {}));

GO.init('blah');

GO.hello('Billy');
Could someone explain to me what:

HTML Code:
GO || {}
... and:

HTML Code:
go = go || {};
.. are doing? What's the purpose of passing GO to the IIFE? Is it redundant to say "xxx || {}" in two locations?

If it is of any help, the original code can be found here.

Thanks!