هل العدّادات مستقلة عن بعضها البعض؟
صنعنا هنا عدّادين اثنين counter
و counter2
باستعمال ذات الدالة makeCounter
.
هل هما مستقلان عن بعضهما البعض؟ ما الذي سيعرضه العدّاد الثاني؟ 0,1
أم 2,3
أم ماذا؟
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter = makeCounter();
let counter2 = makeCounter();
alert( counter() ); // 0
alert( counter() ); // 1
alert( counter2() ); // ?
alert( counter2() ); // ?
الإجابة هي: 0,1.
صنعنا الدالتين counter
و counter2
باستدعاءين makeCounter
مختلفين تمامًا.
لذا فلكلّ منهما بيئات مُعجمية خارجية مستقلة عن بعضها، ولكلّ منهما متغير count
مستقل عن الثاني.