Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Study</title>
- </head>
- <body>
- <script>
- `use strict`
- // Variant A
- ////[GlobalLexEnv] -> [null]
- //let count;
- ////[GlobalLexEnv| count] -> [null]
- ////[counterLexEnv] -> [GlobalLexEnv| count]-> [null]
- //function counter() {
- // return count++;
- //}
- // Varian B
- //[GlobalLexEnv] -> [null]
- //[makeCounterLexEnv| count | res] -> [GlobalLexEnv]-> [null]
- //[resLexEnv] -> [makeCounterLexEnv| count | res] -> [GlobalLexEnv]-> [null]
- //function makeCounter() {
- // let count = 0;
- // let res = function() { return count++; };
- // return res;
- //}
- function makeCounter() {
- let count = 0;
- return {
- set: function (val) { count = val; },
- get: function () { return count; },
- reset: function () { count = 0; },
- counter: function () { return count++; }
- };
- }
- {
- let countA = makeCounter();
- let countB = makeCounter();
- countA.set(26);
- for (let i = 0; i < 5; ++i) {
- console.log(`countA - ${countA.counter()}`);
- }
- countB.set(33);
- for (let i = 0; i < 7; ++i) {
- console.log(`countB - ${countB.counter()}`);
- }
- console.log('#########');
- console.log(`countA - ${countA.get()}`);
- console.log(`countB - ${countB.get()}`);
- countA.reset();
- //countB.reset();
- console.log('#########');
- console.log(`countA - ${countA.get()}`);
- console.log(`countB - ${countB.get()}`);
- }
- ////func();
- //{
- // let hello = counter();
- // for (let i = 0; i < 5; ++i) {
- // hello();
- // }
- //}
- //for (let i = 0; i < 5; ++i) {
- // console.log(counter());
- //}
- //for (let i = 0; i < 5; ++i) {
- // console.log(counter());
- //}
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement