Sobes.tech
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 аяктагандан кийин. Бул жабыктык аркылуу мүмкүн.

Салыштыруу:

Өзгөчөлүк Көрүнүш чөйрөсү Жабыктык
Негизги аныктама Өзгөрмөлөр жана функциялар кай жерде жеткиликтүү экенин аныктайт Функция кандайча ата-энесинин көрүнүш чөйрөсүндөгү өзгөрмөлөргө жетүүнү сактайт
Кайда активдүү Компиляция учурунда (лексикалык чөйрө) Функция ишке ашырылганда, башка көрүнүш чөйрөсүндө түзүлгөн
Байланыш Жабыктык түзүлгөн чөйрөгө көз каранды Көрүнүш чөйрөсү — бул жеткиликтүүлүктү аныктоочу негизги түшүнүк