I master the Javascript IIFE essence, but while reading this page, I'm kinda confused of the usage.
It sounds that the following JavaScript pattern is pretty common:
(function(something) {
    something.foo = 123;
})(something || something = {}) 
A usage example:
(function(something) {
    something.foo = 123;
})(something || something = {})
console.log(something); // {foo:123}
(function(something) {
    something.bar = 456;
})(something || something = {})
console.log(something); // {foo:123, bar:456}
As something is defined in the global scope, what is the benefit of this pattern in relation to the following trivial code:
var something;
something.foo = 123;
something.bar = 456; 
Which use case would it make sense to use it?
 
     
    