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

js self-invoking functions


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.

			})("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

				var pi = 3.141;
				function e() {
					return Math.E;

				window.pi = pi;
				window.e = e;

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