Browse Source

homework8

Marko 1 year ago
commit
1c26fb8aa4
1 changed files with 41 additions and 0 deletions
  1. 41 0
      file.js

+ 41 - 0
file.js

@@ -0,0 +1,41 @@
+// makeProfileTimer
+
+let makeProfileTimer = () => {
+    let result = performance.now()
+    console.log('result',result)
+    return () => {
+        let timer = performance.now()
+        console.log('timer', timer)
+        return timer - result
+    }
+}
+var timer = makeProfileTimer()
+alert(timer())
+
+// makeSaver
+var makeSaver = (callback) =>{
+    var result = callback
+    return () =>{
+        return result
+    }
+}
+
+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
+    
+    // Final Countdown
+
+    for (let i = 0; i <= 5; i++) {
+        setTimeout( () => { 
+            i === 5 ? console.log('Lets go!') : console.log(5 - i) }, i * 1000)
+     }