maryluis 4 vuotta sitten
vanhempi
commit
2eaed30b04
1 muutettua tiedostoa jossa 21 lisäystä ja 15 poistoa
  1. 21 15
      homework12js/script.js

+ 21 - 15
homework12js/script.js

@@ -12,25 +12,31 @@ function makeProfileTimer() {
 //                // т. е. измерить время выполнения alert
 
 function makeSaver(funk) {
-    let savedResult = funk()
-    let result = () => {
-        
+
+    let savedResult
+    let saverInner = () => {
+        if (savedResult == undefined) {
+         savedResult = funk()
+         
+        }
         return savedResult
+
     }
-    return result
+    
+    return saverInner
 }
-// var saver = makeSaver(Math.random) //создает функцию-хранилище результата переданной в качестве параметра функции (Math.random 
-//                                       // в примере). На этом этапе Math.random НЕ вызывается
-//     var value1 = saver()              //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
-//     var value2 = saver()              //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную 
-//                                       //в makeSaver функцию;
-//     value1 === value2                 // всегда true
+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()
+    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
+    value3 === value4 // тоже должно быть true
 
     function starter (number) {
 
@@ -54,4 +60,4 @@ function makeSaver(funk) {
         }
 
     }
-    starter(5)
+    // starter(5)