12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /* function makeProfileTimer() {
- let time = performance.now();
- console.log(`${time} in milisec`);
- return time;
- // console.time('test of speed');
- // let time = performance.now();
- // console.log(`${time} in milisec`);
- // console.timeEnd('test of speed');
- // return time;
- }
- let timer = makeProfileTimer();
- alert('Замеряем время работы этого alert');
- let timer2 = makeProfileTimer();
- alert(timer2 - timer);
- */
-
- function makeSaver(x){
- let called = true;
- let number;
- return function a (){
- if(called){
- number = x();
- called = false;
- }
- return number;
- }
- }
- let saver = makeSaver(Math.random);
- let value1 = saver();
- let value2 = saver();
- console.log(value1);
- console.log(value2);
- 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 был только один раз`)
-
- /*
- (function(seconds) {
- let counter = seconds;
- setTimeout(function countDown(){
- if(counter >= 1 ){
- console.log(`${counter} // pause 1 sec`);
- setTimeout(countDown,1000);
- }
- if (counter <= 0) {
- console.log("GOOOOOOOOOOOOOOOOOO DRINK BEER BRATAN");
- clearTimeout(counter);
- }
- counter--;
- },1000);
- })(5); */
- /* function myBind (fn,context, bindedparams){
- console.log(bindedparams);
- return function(...params){
- let combinedparams = [...bindedparams];
-
- for(let i =0; i < params.length;i++){
- combinedparams.splice(combinedparams.indexOf(undefined),1,params[i]);
- }
- console.log(combinedparams);
- return fn.apply(context, combinedparams);
- }
- }
- // works
- let pow5 = myBind(Math.pow,Math,[undefined,5]);
- console.log(pow5(2));
- var cube = myBind(Math.pow, Math, [undefined, 3]);
- console.log(cube(3));
- //works
- var chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5,undefined, 8,undefined, 9])
- console.log(chessMin(-1,-5,3,15));
- console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d') === 'abcdef') */
|