Derse geri dön

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.