JavaScript Patterns: Self-invocation

Self-invocation (also known as auto-invocation) is when a function executes immediately upon it's definition. 

This is a core pattern and serves as the foundation for many other patterns of JavaScript development.  A self-invoking function is a standard function, just with a set of parentheses appended to the end.

	var msg = "hello";

The above example defines an anonymous function. This creates a literal function, yet since no name is attributed to it, the value is never stored. The trailing parenthesis tell the function to execute, just as if you were calling a named function. Once the function terminates, the variables are discarded and the global object remains unchanged. It it recommended that an extra set of parentheses wrap the function definition as well so to provide a visual clue to the developer that the function isn’t a normal function.

	var msg = "hello";

In the event where a self-invoking function requires parameters, they can be passed in the same manor that you would a regular function

	var msg = "hello";

In an effort to protect the global object, all JavaScript applications should be written within a self-invoking function. This will create an application scope in which variables can be created without the fear of them colliding with other applications. If a global variable is needed, developers must take the extra step by setting them directly within the window object. For example = ‘bar’;. Self-invocation is a fundamental pattern of professional JavaScript development.



comments powered by Disqus


Recent Tweets

Maybe resolved itself, after resetting emulator and couple restarts - will let you know
@MillerMark A few weeks ago you tweeted that something huge/incredible was coming....what is/was it? (I am hoping s……
Oddly, it won't hit breakpoints in XF .net standard 2 project now either
@JamesMontemagno Updated to 15.7 preview 2 Visual Studio - now having lots of odd thread issues when starting debug……