آیا شمارندهها مستقل هستند؟
اهمیت: 5
اینجا ما دو شمارنده میسازیم: 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
خودش را دارد.