Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

what are closures

Closures are related and often confused with lambda functions.
The 2 concepts are wonderfully explained and distinguished 
in this StackOverflow answer :
https://stackoverflow.com/a/36878651/13574304
Comment

Closure Example


	 function Counter() {
    var counter = 0;
alert("XXXXX");
function increaseCounter()
{
return counter +=1;
} 

return increaseCounter;
}

/***/
const counter = new Counter();
console.log(counter());
console.log(counter());


/*note that alert("XXXX") only executes once*/
/*think of counter() = new Counter() declaration as storing the value of ONE Counter function execution and 
the remaining times you use counter(), you reexecute only the returned function*/
/*use counter() instead of Counter() if you want alert("XXXX") to execute only once AND for you to be able to return an actual value otherwise you only console.log a function and alert executes multiple times*/
Comment

closures

// Closures
//Almost mystical like feature that many developers fail to fully understand.
//We cannot create closures manually like how we create arrays and functions.
//Rather closures happen in certain  situations. We just need to recognize 
//those situations.

//Example:
const secureBooking = function () {
   let passengerCount = 0; //Variable of the secureBooking Function
   
  //returns a function
   return function () {
     passengerCount++; //Adding to the passengerCount
     console.log(passengerCount);
  };
 };

const book = secureBooking(); //capture that function
book();

//In the above example we have a function called secureBooking
//That function returns another function, which we stored in book variable
//We then call the book() function and it adds to the passengerCount.
//But you may be wondering? How can it add to the passengerCount
//if the secureBooking has finished executing, shouldn't it not exist?
//This works because all functions have access to the variable environment
// in which they were created in. Meaning since secureBooking created
// the function which we stored in book. The book function now has 
// access to the variable environment of secureBooking function.
Comment

what is closure

outer = function() {
  var a = 1;
  var inner = function() {
    console.log(a);
  }
  return inner; // this returns a function
}

var fnc = outer(); // execute outer to get inner 
fnc();
Comment

A closure Function

var returns_a_func = function () {
  var word = 'I can see inside '     function sentence(){    var word2 = 'I can also see outside. '     console.log(word + 'and ' + word2)   }   return sentence;
}var finalSentence = returns_a_func()finalSentence()
Comment

closure examples

function makeFunc() {
  const name = 'Mozilla';
  function displayName() {
    console.log(name);
  }
  return displayName;
}

const myFunc = makeFunc();
myFunc();
Comment

closure example

const add = (function () {
  let counter = 0;
  return function () {counter += 1; return counter}
})();

add();
add();
add();

// the counter is now 3
Comment

A closure Function

Cannot GET /about-us.html
Comment

PREVIOUS NEXT
Code Example
Javascript :: cookies javascript 
Javascript :: electron npm start not working 
Javascript :: javascript add button 
Javascript :: redirect in react-router-dom v6 
Javascript :: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 
Javascript :: javascript array cheatsheet 
Javascript :: router.push 
Javascript :: javascript change checkbox state 
Javascript :: javascript alarm 
Javascript :: js delete url params 
Javascript :: arrow expression javascript 
Javascript :: static in class javascript 
Javascript :: yarn react 
Javascript :: noise expression after effects 
Javascript :: how to convert string to random case in javascript 
Javascript :: how to assert element attributes in testing library 
Javascript :: p cannot appear as a descendant of p react 
Javascript :: selectize in ajax call 
Javascript :: javascript Arrow Function as an Expressio 
Javascript :: xhr.upload 
Javascript :: JavaScript HTML DOM Collections 
Javascript :: jQuery - Set 
Javascript :: test driven development javascript 
Javascript :: window alert javascript css 
Javascript :: phaser rotate around distance 
Javascript :: regular expression a-z and 0-9 
Javascript :: multiple pagination angular material 
Javascript :: nextjs check path 404 
Javascript :: golang read json file 
Javascript :: block scoped in js 
ADD CONTENT
Topic
Content
Source link
Name
2+3 =