1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- // let countTime = 0;
- // function makeProfileTimer () {
- // countTime = performance.now();
- // return () => performance.now() - countTime;
- // }
- // var timer = makeProfileTimer();
- // alert('Замеряем время работы этого alert');
- // alert(timer());
- //makeSaver
- // debugger;
- // function makeSaver (arg) {
- // let storage = [];
-
- // return () => {
- // if (storage.length) {
- // let elemArr = arg();
- // storage.push(elemArr);
- // }
-
- // return storage[0];
- // }
- // }
- // var saver = makeSaver(Math.random);
- // var value1 = saver();
- // var value2 = saver();
- // console.log(value1 === value2);
- // 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()
- // console.log(value3 === value4);
- // let namePrompt = prompt.bind(window, 'Как тебя зовут?')
- // let nameSaver = makeSaver(namePrompt)
- // alert(`Привет! Prompt еще не было!`)
- // alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
- // alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)
- //Final Countdown
-
- // function SelfInvoked (arg) {
- // console.log(arg);
- // arg = arg -1;
-
- // if (arg === 0) {
- // setTimeout(SelfInvoked, 1000, 'поехали!');
- // return;
- // }
- // if(arg) {
- // return setTimeout(SelfInvoked, 1000, arg);
- // }
- // return;
- // }
- // SelfInvoked(5);
- // myBind
- //debugger;
- function myBind (func, obj, arr) {
-
- return function (...arg) {
- let indexArg = 0;
-
- for (let i = 0; i < arr.length; i++) {
- if (!arr[i]) {
- arr[i] = arg[indexArg];
- indexArg++;
- }
- }
- let result = func.apply(obj, arr)
- return result;
- }
-
- }
- var pow5 = myBind(Math.pow, Math, [undefined, 5]);
- var cube = myBind(Math.pow, Math, [undefined, 3]);
- console.log(pow5(2));
- console.log(cube(3));
- var chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5,undefined, 8,undefined, 9]);
- console.log(chessMin(-1,-5,3,15));
- var zeroPrompt = myBind(prompt, window, [undefined, "0"]);
- var someNumber = zeroPrompt("Введите число") ;
- console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d') === 'abcdef')
|