123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // --------------------------------------------------makeProfileTimer-------------------------------------------------------------------
- // function makeProfileTimer() {
- // let startTime = performance.now();
- // return function () {
- // return performance.now() - startTime;
- // }
- // };
- // const timer = makeProfileTimer();
- // alert('Замеряем время работы этого alert');
- // alert(`Time for this alert running is: ${timer()}`);
- // --------------------------------------------------makeSaver-------------------------------------------------------------------
- // function makeSaver(someFunc) {
- // let firstRun = true;
- // let saveResult;
- // return function() {
- // if(firstRun) {
- // saveResult = someFunc();
- // firstRun = false;
- // console.log(`Result is saved: ${saveResult}`);
- // }
- // return saveResult;
- // }
- // }
- // var saver = makeSaver(Math.random);
- // var value1 = saver();
- // var value2 = saver();
- // 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();
- // value3 === value4;
- // --------------------------------------------------Final Countdown-------------------------------------------------------------------
- // function finalCountdown(seconds) {
- // console.log(seconds);
- // if(seconds === 1) {
- // // console.log('"поехали!"'); // If it is necessary to write it immediately
- // // return; // Will write Gagarin's speech without delay
- // return setTimeout(() => console.log('"поехали!"'), 1000);
- // }
- // return setTimeout(finalCountdown, 1000, seconds - 1);
- // }
- // finalCountdown(5);
- // --------------------------------------------------myBind-----------------------------------------------------------------------
- function myBind(func, myThis, myArray) {
- return function (...arguments) {
- let count = 0;
- let tempArray = myArray.map((value) =>
- (value === undefined ? arguments[count++] : value)
- );
- // let tempArray;
- // tempArray = myArray.map((value) => {
- // ( value === undefined ? arguments[count++] : value)
- // });
- return func.call(myThis, ...tempArray);
- }
- }
- var pow5 = myBind(Math.pow, Math, [undefined, 5])
- var cube = myBind(Math.pow, Math, [undefined, 3])
- // pow5(2) // => 32, вызывает Math.pow(2,5), соотнесите с [undefined, 5]
- // cube(3) // => 27
- 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)) // вызывает Math.min(-1, 4, -5, 5, 3, 8, 15, 9), результат -5
- var zeroPrompt = myBind(prompt, window, [undefined, "46"])
- var someNumber = zeroPrompt("Введите число") // вызывает prompt("Введите число","0")
- console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a', 'c', 'd') === 'abcdef')
|