Sayaçlar bağımsız mı?
önem: 5
sayac ve sayac2 aynı sayacUret fonksiyonu kullanmaktadır.
Bu sayaçlar birbirlerinden bağımsız mıdır? İkinci sayaç ne gösterecek ? 0,1 veya 2,3 veya tamamen başka bir şey mi?
function sayacUret() {
let say = 0;
return function() {
return say++;
};
}
let sayac = sayacUret();
let sayac2 = sayacUret();
alert( sayac() ); // 0
alert( sayac() ); // 1
alert( sayac2() ); // ?
alert( sayac2() ); // ?
Cevap: 0,1.
sayac ve sayac2 sayacUret’in farklı zamanlarda çağırılmasıyla oluşmuştur.
Bundan dolayı birbirinden bağımsız dış sözcüksel çevrelere sahiptirler. Yani her ikisi kendisine ait say değişkenine sahiptir.