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?
(function(){
}).call(this);
calls the anonymous function where the this
inside the function will point to the object referred by this
when the call was made.
(function(){
})();
calls the anonymous function where the this
inside the function will point to the global object (or undefined in strict mode)
Demo: Fiddle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With