main.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //1.makeProfileTimer
  2. // function makeProfileTimer(){
  3. // let time = performance.now();
  4. // return function sec(){
  5. // return time * 1000;
  6. // };
  7. // }
  8. // let timer = makeProfileTimer();
  9. // alert('Замеряем время работы этого alert');
  10. // alert(timer());
  11. //2.makeSaver
  12. // function makeSaver (fn){
  13. // return function(){
  14. // fn();
  15. // }
  16. // }
  17. // function al(){
  18. // let namePrompt = prompt.bind(window, 'Как тебя зовут?');
  19. // let nameSaver = makeSaver(namePrompt);
  20. // alert(`Привет! Prompt еще не было!`);
  21. // alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`);
  22. // alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`);
  23. // }
  24. // al();
  25. // let saver = makeSaver(Math.random);
  26. // let value1 = saver();
  27. // let value2 = saver();
  28. // console.log(value1 === value2);
  29. // let saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)]);
  30. // let value3 = saver2();
  31. // let value4 = saver2();
  32. // console.log(value3 === value4);
  33. //3.Final Countdown
  34. // let counter = 5;
  35. // function selfInvoked(){
  36. // console.log(counter);
  37. // let timer = setTimeout(() => {
  38. // selfInvoked()
  39. // }, 1000);
  40. // if(counter > 1){
  41. // return function (){
  42. // return counter--;
  43. // }();
  44. // }
  45. // clearInterval(timer);
  46. // if(counter === 1){
  47. // console.log('поехали!');
  48. // }
  49. // }
  50. // selfInvoked();
  51. //4.myBind
  52. // function myBind(fnBind, context, fn){
  53. // return function(...args){
  54. // let i = 0;
  55. // let array = fn.map((arr) => {
  56. // if (arr === undefined) {
  57. // const argsEl = args[i];
  58. // i += 1;
  59. // return argsEl;
  60. // } else {
  61. // return arr;
  62. // }
  63. // });
  64. // return fnBind.apply(context, array);
  65. // };
  66. // }
  67. // let pow5 = myBind(Math.pow, Math, [undefined, 5]);
  68. // let cube = myBind(Math.pow, Math, [undefined, 3]);
  69. // let chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5,undefined, 8,undefined, 9]);
  70. // console.log(pow5(2));
  71. // console.log(cube(3));
  72. // console.log(chessMin(-1, -5, 3, 15));
  73. // let zeroPrompt = myBind(prompt, window, [undefined, "0"]);
  74. // let someNumber = zeroPrompt("Введите число");
  75. // console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d') === 'abcdef');