Skip to main content

Closures

Closures are functions that refers to variables that are neither part of their arguments nor created in their body.

What accounts to variables

In JavaScript, a variable can be a primitive, object or a function. So any of these outside references in the function makes it a closure.

Closure execution​

A function is a closure irrespective of when it's executed. It can be executed immediately, executed by the caller or it can be passed around.

Meaning of word closure​

Closure comes from the phrase close over which means something closes or cover something.

  • The eyelids closed over her eyes as she drifted off to sleep.
  • The lid closed over the box, securing its contents.
why the word closure

In case of JavaScript, it means the code block closes over all surrounding necessary information.

It's a closed bundle of function code plus the variables necessary for it to execute independently.

Lexical environment of closures​

Closures get their own lexical environment. This means, when the closure is created, it gets its own map of variables, functions and reference to parent environment.

life of a closure

The created closure function remains alive as long as the closure object is referenced by any other object.

Just standard object management.