Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function numGenerator(name) { // Outer function
- var counter = 0; // Counter variable belonging to the outer function scope
- function generator() { // Inner function (the infamous closure)
- var num = Math.round(Math.random() * 100); // This gets a random number between 0 and 100
- counter += 1; // This increments the counter
- console.log(name + " Stats:");
- console.log("Numbers generated: " + counter);
- return num;
- }
- return generator; // Returning the closure
- }
- var gen1 = numGenerator('Generator One'); // Creates a new random number generator
- var gen2 = numGenerator('Generator Two'); // Creates a new random number generator
- // NOTE: Check the counter that's being logged to the console
- // Notice how we didn't need to create the logic for it when
- // creating the generators on lines 17 and 18? Each generator
- // has its own unique counter.
- console.log("Random number: " + gen1());
- console.log("Random number: " + gen1());
- console.log("Random number: " + gen1());
- console.log("Random number: " + gen2());
- console.log("Random number: " + gen2());
- console.log("Random number: " + gen2());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement