Browse Source

HW16 part 2

Nastaliya 5 years ago
parent
commit
19e3bba063
1 changed files with 82 additions and 0 deletions
  1. 82 0
      HW16_2_Nechiporuck.html

+ 82 - 0
HW16_2_Nechiporuck.html

@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="X-UA-Compatible" content="ie=edge">
+  <title>Document</title>
+  <style type="text/css">
+    label{
+      display: inline-block;
+      width:80px;
+      margin-top: 15px;
+    }
+    input{
+      margin-top: 15px;
+    }
+  </style>
+</head>
+<body>
+  <select id="citySelect"></select>
+   <select id="countrySelect"></select>
+   
+    <script type="text/javascript">
+  //Замыкания
+  ////////////////////////////////////////////////////////////////////////////////////
+  //makeProfileTimer
+  /////////////////////////////////////////////////////////////////////////////////////
+//2 makeSaver
+
+function makeSaver(validator){
+  var check = false
+  var result
+return function(){
+  //debugger
+  //let result
+  if(check === false){
+    result = validator()
+    check = true
+    return result}
+  else { 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
+//////////////////////////////////////////////////////////////////////////////
+//myBind
+function myBind(func,thisArg,staticArg){
+  return function (){
+    for (var key of arguments){
+      for (var arg in staticArg){
+        if(typeof(staticArg[arg]) == "undefined"){
+          staticArg[arg] = key
+          break
+        }
+      }
+    }
+    return func.apply(thisArg,staticArg)
+  }
+}
+//////////////////////////////////////////////////////////////////////////////////////////
+//Рекурсия
+//Sum
+
+//HTML Tree
+
+//////////////////////////////////////////////////////////////////////////////////////////
+    </script>
+</body>
+</html>