Browse Source

HW <9> done

Vadym Shakhmatenko 1 year ago
parent
commit
0dd8c2b562
2 changed files with 83 additions and 0 deletions
  1. 8 0
      Homework8/workspace.code-workspace
  2. 75 0
      Homework9/index.html

+ 8 - 0
Homework8/workspace.code-workspace

@@ -0,0 +1,8 @@
+{
+	"folders": [
+		{
+			"path": ".."
+		}
+	],
+	"settings": {}
+}

+ 75 - 0
Homework9/index.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+
+        //makeProfileTimer
+            var timer = makeProfileTimer();
+            function makeProfileTimer(){
+                function adder(){
+                    let t0 = performance.now();
+                    alert("Измеряем этот alert")
+                    let t1 = performance.now();
+                    return "Alert был аж " + (t1 - t0) + " мс"
+                }
+                return adder
+            }
+            // console.log(timer())
+
+
+
+        //makeSaver
+        var saver = makeSaver(Math.random) //создает функцию-хранилище результата переданной в качестве параметра функции (Math.random 
+                                      // в примере). На этом этапе Math.random НЕ вызывается
+        var value1 = saver()           //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
+        var value2 = saver()              //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную 
+                                        //в makeSaver функцию;
+        value1 === value2                 // всегда true
+
+        var saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)])
+        var value3 = saver2()
+        var value4 = saver2()
+
+        value3 === value4 // тоже должно быть true
+
+        let namePrompt = prompt.bind(window, 'Как тебя зовут?')
+        let nameSaver = makeSaver(namePrompt)
+        // alert(`Привет! Prompt еще не было!`)
+        // alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
+        // alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)
+
+        function makeSaver(x){
+                let count = 0;
+                let functionStorage;
+
+                let saverFn = function() { 
+                    if (count == 0){
+                        functionStorage = x() ;
+                    }else{
+                        return functionStorage;
+                    } 
+                    count++;
+                    return functionStorage;
+                }
+                return saverFn;
+            }
+
+    //Final Countdown
+
+        (function fn(n) {
+            if (n === 0) return console.log("поехали");
+        setTimeout(() => fn(n-1), 1000,console.log(n))
+        })(5);
+
+    //myBind +++++++++
+          
+    </script>
+    
+</body>
+</html>