Junior
Жабууну жана чектөөнү айырмалоочу эмне?
sobes.tech AI
AIден жооп
Жабыктык — бул функция, ал өзү түзүлгөн чөйрөнү (лексикалык көрүнүш чөйрөсүн) эстеп калат, ал тургай ал ошол чөйрөдөн тышкары ишке ашырылса да. Бул анын ата-энесинин көрүнүш чөйрөсүнөн өзгөрмөлөргө кирүүгө мүмкүндүк берет.
Көрүнүш чөйрөсү — бул программа чөйрөсү, анда белгилүү бир өзгөрмө же функция көрүнүп турат жана ага жетүүгө болот. JavaScriptте глобалдык, функционалдык жана блоктук көрүнүш чөйрөлөрү бар.
Негизги айырмасы:
- Көрүнүш чөйрөсү өзгөрмө же функция кай жерде жеткиликтүү экенин аныктайт компиляция (же парсинг) учурунда.
- Жабыктык функцияга өзүнүн көрүнүш чөйрөсүндөгү өзгөрмөлөргө жетүүнү сактап калууга мүмкүндүк берет чоңураак чөйрө аяктагандан кийин.
Көрүнүш чөйрөсүнүн мисалы:
// Глобалдык көрүнүш чөйрөсү
let globalVar = "Мен глобалдыкмын";
function myFunction() {
// Функционалдык көрүнүш чөйрөсү
let functionVar = "Мен функционалдыкмын";
console.log(globalVar); // Жеткиликтүү
}
// console.log(functionVar); // Ката ReferenceError: functionVar аныкталган эмес
Жабыктык мисалы:
function createCounter() {
let count = 0; // createCounter функциясынын көрүнүш чөйрөсүндөгү өзгөрмө
return function() { // Бул жабыктык
count++; // Ага ата-энесинин көрүнүш чөйрөсүндөгү countке жетүү мүмкүн
console.log(count);
};
}
const counter = createCounter();
counter(); // 1 деп чыгат (count сакталат)
counter(); // 2 деп чыгат (count сакталат)
// console.log(count); // Ката ReferenceError: count аныкталган эмес
Бул мисалда ички функция (жабыктык) count өзгөрмөсүнө жетүүнү сактайт, even after createCounter аяктагандан кийин. Бул жабыктык аркылуу мүмкүн.
Салыштыруу:
| Өзгөчөлүк | Көрүнүш чөйрөсү | Жабыктык |
|---|---|---|
| Негизги аныктама | Өзгөрмөлөр жана функциялар кай жерде жеткиликтүү экенин аныктайт | Функция кандайча ата-энесинин көрүнүш чөйрөсүндөгү өзгөрмөлөргө жетүүнү сактайт |
| Кайда активдүү | Компиляция учурунда (лексикалык чөйрө) | Функция ишке ашырылганда, башка көрүнүш чөйрөсүндө түзүлгөн |
| Байланыш | Жабыктык түзүлгөн чөйрөгө көз каранды | Көрүнүш чөйрөсү — бул жеткиликтүүлүктү аныктоочу негизги түшүнүк |