Self-Invoking Functions
A self-invoking (also called self-executing) function is a nameless (anonymous) function that is invoked immediately after its definition.
An anonymous function is enclosed inside a set of parentheses followed by another set of parentheses ()
, which does the execution
(function(){
console.log(Math.PI);
})();
Self-invoking functions are useful for initialization tasks and for one-time code executions, without the need of creating global variables.
Parameters can also be passed to self-invoking functions as shown in the example below.
(function(x){
console.log(x);
})("Hello, World!");
A self-invoking function can have variables and methods but they cannot be accessed from outside of it. To access them, the global window
object has to be passed as a parameter.
Consider a self-invoking function below, containing the variable pi
and the function e()
. A global window
object is passed and both pi
and e()
are assigned to the global variables window.pi
and window.e
respectively
(function(){
var pi = 3.141;
function e() {
return Math.E;
}
window.pi = pi;
window.e = e;
})(window);
In the browser console, the command pi
will return 3.141
and the command e()
will return 2.718281828459045
.
> pi; // 3.141
> e(); // 2.718281828459045