avr39ripe

jsClosureDemo

Mar 7th, 2021 (edited)
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Study</title>
  6. </head>
  7. <body>
  8.     <script>
  9. // this + new version - https://pastebin.com/cirmUYMv
  10.         `use strict`
  11.  
  12.         function makeCounter() {
  13.             let count = 0;
  14.             return {
  15.                 set: function (val) { count = val; },
  16.                 get: function () { return count; },
  17.                 reset: function () { count = 0; },
  18.                 counter: function () { return count++; }
  19.             };
  20.         }
  21.  
  22.         {
  23.             let counterA = makeCounter();
  24.             counterA.set(26);
  25.             for (let i = 0; i < 5; ++i) { console.log(`counterA.counter() - ${counterA.counter()}`) };
  26.             console.log(`counterA.get() - ${counterA.get()}`);
  27.  
  28.             let counterB = makeCounter()
  29.             for (let i = 0; i < 5; ++i) { console.log(`counterB.counter() - ${counterB.counter()}`) };
  30.             console.log(`counterB.get() - ${counterB.get()}`);
  31.  
  32.             counterA.reset();
  33.             counterB.reset();
  34.             console.log(`counterA.get() - ${counterA.get()}`);
  35.             console.log(`counterB.get() - ${counterB.get()}`);
  36.  
  37.         }
  38.     </script>
  39. </body>
  40. </html>
Add Comment
Please, Sign In to add comment