Difference between revisions of "Immediately-invoked function expression"
From Wiki @ Karl Jones dot com
Karl Jones (Talk | contribs) |
Karl Jones (Talk | contribs) |
||
Line 10: | Line 10: | ||
This pattern has been referred to as a '''self-executing anonymous function'''; [[Ben Alman]] introduced "IIFE" as a more semantically accurate term for the pattern, shortly after its discussion arose on comp.lang.javascript. | This pattern has been referred to as a '''self-executing anonymous function'''; [[Ben Alman]] introduced "IIFE" as a more semantically accurate term for the pattern, shortly after its discussion arose on comp.lang.javascript. | ||
+ | |||
+ | == Code sample == | ||
+ | |||
+ | <pre> | ||
+ | (function(app) { | ||
+ | })(window.app || (window.app = {})); | ||
+ | </pre> | ||
== See also == | == See also == |
Latest revision as of 16:52, 9 December 2016
An immediately-invoked function expression (or IIFE, pronounced "iffy") is a JavaScript design pattern which produces a lexical scope using JavaScript's function scoping.
Description
Immediately-invoked function expressions can be used to:
- Avoid variable hoisting from within blocks
- Protect against polluting the global environment
- Simultaneously allow public access to methods while retaining privacy for variables defined within the function
This pattern has been referred to as a self-executing anonymous function; Ben Alman introduced "IIFE" as a more semantically accurate term for the pattern, shortly after its discussion arose on comp.lang.javascript.
Code sample
(function(app) { })(window.app || (window.app = {}));