Функция и лексикалния контекст, в който е декларирана, се комбинират, за да образуват затваряне. По-конкретно, това е вътрешна функция, която има достъп до променливите на външната или заобикалящата функция.

Функциите, които се отнасят до независими (свободни) променливи, се наричат ​​затваряния. Функцията, посочена в затварянето, с други думи, „помни“ средата, в която е разработена.

Затварянето има три вериги на обхват –

  1. Собствен обхват, където променливите са дефинирани между фигурните скоби
  2. Променливи на външни функции
  3. Глобални променливи

Нека да разгледаме пример за концепция за затваряне.

function Welcome(name) 
  var greetingInfo = function (message) 
    console.log(message + " " + name);
  ;
  return greetingInfo;

var myFunction = Welcome("John");
myFunction("Welcome "); //Output: Welcome John
myFunction("Hello Mr."); //output: Hello Mr.John

Според кода по-горе, дори след като външната функция се е върнала, вътрешната функция (т.е. greetingInfo) може да има достъп до променливите в обхвата на външната функция (т.е. Welcome).

https://www.codesolutionstuff.com/learn-javascript-closures-with-code-examples/

Научете разработката на пълен стек — CodeSolutionStuff