Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. function numGenerator(name) { // Outer function
  2. var counter = 0; // Counter variable belonging to the outer function scope
  3.  
  4. function generator() { // Inner function (the infamous closure)
  5. var num = Math.round(Math.random() * 100); // This gets a random number between 0 and 100
  6. counter += 1; // This increments the counter
  7.  
  8. console.log(name + " Stats:");
  9. console.log("Numbers generated: " + counter);
  10.  
  11. return num;
  12. }
  13.  
  14. return generator; // Returning the closure
  15. }
  16.  
  17. var gen1 = numGenerator('Generator One'); // Creates a new random number generator
  18. var gen2 = numGenerator('Generator Two'); // Creates a new random number generator
  19.  
  20. // NOTE: Check the counter that's being logged to the console
  21. // Notice how we didn't need to create the logic for it when
  22. // creating the generators on lines 17 and 18? Each generator
  23. // has its own unique counter.
  24. console.log("Random number: " + gen1());
  25. console.log("Random number: " + gen1());
  26. console.log("Random number: " + gen1());
  27.  
  28. console.log("Random number: " + gen2());
  29. console.log("Random number: " + gen2());
  30. console.log("Random number: " + gen2());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement