What is the purpose of a self executing function in javascript?
closures, iife, javascript, self-executing-function
Solution
It's all about variable scoping. Variables declared in the self executing function are, by default, only available to code within the self executing function. This allows code to be written without concern of how variables are named in other blocks of JavaScript code.
For example, as mentioned in a comment by Alexander:
(function() {
var foo = 3;
console.log(foo);
})();
console.log(foo);
This will first log `3` and then throw an error on the next `console.log` because `foo` is not defined.
Problem
In javascript, when would you want to use this: ``` (function(){ //Bunch of code... })(); ``` over this: ``` //Bunch of code... ```
Related problems
- Explain the encapsulated anonymous function syntax
- What is the purpose of wrapping whole Javascript files in anonymous functions like “(function(){ … })()”?
- Location of parenthesis for auto-executing anonymous JavaScript functions?
- Init function in javascript and how it works
- What is the (function() { } )() construct in JavaScript?
- What do parentheses surrounding an object/function/class declaration mean?