JavaScript'теги чектелүүлөрдөгү эсептегич
Келгиле, биз карап чыккан кодду кайра жазалы
жана кайтарылган функция ар жолу
num өзгөрмөсүнүн маанисин бирдикке
көбөйтсүн:
function test() {
let num = 1;
return function() {
console.log(num);
num++; // бирдик кошуу
}
}
let func = test();
Анда func функциясын ар жолу чакырганда
консольго жаңы маани чыгат:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
}
}
let func = test();
func(); //1 чыгарат
func(); //2 чыгарат
func(); //3 чыгарат
func(); //4 чыгарат
func(); //5 чыгарат
Демек, биз чектелүүнү (тактап айтканда биздин
функциябыздын чектелүүсүндөгү num өзгөрмөсүн)
колдонуп, функцияларды чакырууну эсептегичтин
ишин ишке ашырдык.
test функциясын ар жолу чакырганда
жаңы функция кайтарарын эсиңизден чыгарбаңыз, анын
өзүнүн чектелүүсү болот. Башкача айтканда, ар түрдүү эсептегичтер
өзалдынча иштейт:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
let func1 = test(); // биринчи эсептегич
func1(); //1 чыгарат
func1(); //2 чыгарат
let func2 = test(); // экинчи эсептегич
func2(); //1 чыгарат
func2(); //2 чыгарат
Демек, бир эле num өзгөрмөсү
ар түрдүү функциялар үчүн ар түрдүү мааниге ээ болот!
Эгерде биз test функциясын
эки жолу чакырсак, анда андан алынган функциялар
өзалдынча иштейт жана алардын ар бири
өзүнүн көз карандысыз
num өзгөрмөсүнө ээ болот.
Өз алдынча, менин кодду карабастан, чектелүүлөрдө иштеген функцияны чакыруунун эсептегичтин ишин ишке ашырыңыз.
Функция чектелүүдө 10 сактоосун.
Функцияны ар жолу чакырганда бул санды 1ге
кемитүүсүн жана
консольго кемитүлгөн санды чыгаруусун кылыңыз.
Мурунку маселени өзгөртүп, эсептөө
0 чейин жетсин, андан кийин ар бир
кийинки функцияны чакыруу консольго
эсептөө аяктагандыгы жөнүндө кабар чыгарсын.