Scope, Closure

Daniel Steigerwald

JavaScript

// http://daniel.steigerwald.cz (MIT Licensed)

var getFn = function(start) {
    // proměnná number, uložená v closure
    var number = start;        
    // anonymní funkce, kterou vracíme
    return function() {
        number++;
        alert(number);
    };    
    
};

// fn1 je funkce kterou vracíme z getFn
var fn1 = getFn(0);
// jak je vidět, funkce fn1 může manipulovat s proměnnou number ve svém closure
fn1(); // 1

var fn2 = getFn(2);
fn2(); // 3
fn2(); // 4