Použití omezení rozsahu proměnné (function(){})();

Jednoduše řečeno, omezovač rozsahu je samospouštěcí funkce, která definuje proměnné, provádí úlohu a vymaže tyto proměnné, takže jejich rozsah je omezen na funkci samotnou. Vezměte si například následující kód JavaScript:

/* do task 1:   */
var lynx = $$('a');
var divs = $$('div');
//(do stuff with links and divs)

/* do task 2 */
var lynx = $$('a'); //error:  lynx already defined!
var lis = $$('li');
//(do stuff with links and list items)

Vše výše uvedené funguje, ale druhý úkol může „vidět“ proměnné použité k dokončení úkolu jedna. To je nežádoucí, protože tyto proměnné z první úlohy by mohly způsobit problémy s pozdějšími úlohami. Lepším způsobem, jak dokončit tyto dva úkoly, je použít omezovače rozsahu pro každý z nich:

/* do task 1:   */
(function() {
	var lynx = $$('a');
	var divs = $$('div');
	//(do stuff with links and divs)
})();

/* do task 2 */
(function() {
	var lynx = $$('a');
	var lis = $$('li');
	//(do stuff with links and list items)
})();

Bonbón! Proměnné z první úlohy mají nyní rozsah pouze v rámci svého vykonávaného funkčního rozsahu a nemohou ovlivnit ostatní JavaScript v rámci „rodičovského“ rozsahu.

Vyčistěte kód FTW! Mějte tyto techniky na paměti, když píšete kód, který bude přepracován!