Why my function is wrapped in parenthesis ?!
May 17, 2020
#Javascript
Javascript functions wrapped in parenthesis like in the example below are called Immediately Invoked Function Expression aka IIFE :
(function (){
// calculating very important stuff
})();
Here you can keep the function anonymous because no one is going to invoke it, but itself. You can also name it, this not will affect the โself callโ behavior.
When should you use it ?
The main reason is scope visibility. For example, wrapping entire javascript file in a immediately invoke function it prevents to access variables defined outside that file: very helpful when you include a lot of js files ! If you come from the backend world you can consider it a way of defining the namespace.
Summary
Immediately Invoked Function Expressions:
- They will keep your variables isolated
- They avoid variables collision
( maybe from a different file which it was not wrapped in an IIFE ๐)
For further details check the official mozilla glossary.
Pingu ๐ง