What is a closure?

closures

Closures are an extremely powerful property of JavaScript

Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure ‘remembers’ the environment in which it was created.


        let myName = "javascript";

        function printName(){
            // console.log(myName)
            document.write(myName)
        }

        myName = 'React Js'

        printName()

        myName = 'Node Js'

        printName()


Function Inside


        function numberGenerator() {
        // Local “free” variable that ends up within the closure
            var num = 1;
            function checkNumber() {
                console.log(num);
             }
             num++;
             return checkNumber;
            }

            var number = numberGenerator();
            number(); // 2