Sobes.tech
Junior — Middle

Можете ли објаснити шта је затварање у Јаваскрипту и како ради?

sobes.tech АИ

Одговор од АИ

Затварање у JavaScript-у је функција која се «сећа» окружења у којем је створена, чак и ако то окружење више није активно. Једноставније речено, функција унутар друге функције може приступити променљивима спољашње функције након што она заврши са извршавањем.

Ово ради зато што приликом креирања функције, сачувана је референца на лексичко окружење у којем је она објављена.

Пример:

function спољашња() {
  let бројач = 0;
  return function унутрашња() {
    бројач++;
    console.log(бројач);
  };
}

const бројач = спољашња();
бројач(); // 1
бројач(); // 2

Овде, унутрашња затвара променљиву бројач из спољашње, одржавајући њено стање између позива.