Is there a difference between:
(function(){
}).call(this);
and
(function(){
})();
or
var MODULE = {};
(function(){
this.hello = 'world'
}).call(MODULE);
and
var MODULE = {};
(function(m){
m.hello = 'world'
})(MODULE);
I often see the first case in compiled javascript. They both would create a scope and do their namespacing job well.
Is there any difference or is it just a matter of taste.
Edit: And why would compiled javascript would use call over IIFE?
calls the anonymous function where the
this
inside the function will point to the object referred bythis
when the call was made.calls the anonymous function where the
this
inside the function will point to the global object (or undefined in strict mode)Demo: Fiddle