Browse Source

fix satTimeout in countdown

serg155alternate 2 years ago
parent
commit
b355a8a9d9
1 changed files with 44 additions and 11 deletions
  1. 44 11
      HW10 Closures and scopes/script.js

+ 44 - 11
HW10 Closures and scopes/script.js

@@ -12,10 +12,10 @@
 
 function makeProfileTimer() {
     let t0 = performance.now();
-        return function tn(){
-                let t1 = performance.now();
-                return ("Call took " + (t1 - t0) + " milliseconds.")
-        } 
+    return function tn() {
+        let t1 = performance.now();
+        return ("Call took " + (t1 - t0) + " milliseconds.")
+    }
 }
 
 
@@ -35,9 +35,10 @@ let timer3 = makeProfileTimer();
 // makeSaver
 
 
-function makeSaver(func){
+function makeSaver(func) {
     let funcRes = func();
-    function saverFunc(){
+
+    function saverFunc() {
         return funcRes;
     }
     return saverFunc;
@@ -49,8 +50,8 @@ let saver = makeSaver(Math.random)
 //console.log(saver()); 
 
 
-var value1 = saver()              //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
-var value2 = saver()              //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную 
+var value1 = saver() //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
+var value2 = saver() //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную 
 //в makeSaver функцию;777
 //console.log(value1 === value2);                 // всегда true
 
@@ -75,7 +76,30 @@ alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt б
    1 //пауза 1 секунда
    "поехали!" */
 
+
+
+let counter = 5;
+
+function countdown() {
+    console.log(counter);
+    let int1 = setTimeout(() => {
+        countdown()
+    }, 1000);
+    if (counter > 0) {
+        return (function decr() {
+            return counter--;
+        })();
+    }
+    clearTimeout(int1)
+    if (counter === 0) {
+        console.log('GOGOGO');
+    }
+};
+countdown();
+
+
 /* 
+//cheeter
 let counter = 5;
 function countdown() {
     console.log(counter);
@@ -116,10 +140,12 @@ let someNumber = zeroPrompt("Введите число")              // выз
 myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d') === 'abcdef' */
 
 
-function myBind(func, funcThis, arr){
+function myBind(func, funcThis, arr) {
     let bindArray = arr;
     let funcRes = func.bind(funcThis, ...bindArray);
-    function retFunc(...params){
+
+    function retFunc(...params) {
+
         console.log(bindArray);
         return funcRes(...params);
     }
@@ -128,5 +154,12 @@ function myBind(func, funcThis, arr){
 
 
 console.log(myBind(Math.pow, Math, [undefined, 5]));
-console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d'));
+console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a', 'c', 'd'));
+
 
+/* console.log([undefined, 'b', undefined, undefined, 'e', 'f'].map((item, i) => {
+    if( item[i] ==='undefined') {
+        console.log(i);       
+         item[i] = ['a','c','d'][i]
+       }
+})) */