1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- function makeProfileTimer() {
- let time1 = performance.now()
- let timeInner = () => {
- let time2 = performance.now()
- return time2 - time1
- }
- return timeInner;
- }
- // var timer = makeProfileTimer()
- // alert('Замеряем время работы этого alert'); //некий код, время выполнения которого мы хотим измерить с высокой точностью
- // alert(timer()); //alert должен вывести время в микросекундах от выполнения makeProfileTimer до момента вызова timer(),
- // // т. е. измерить время выполнения alert
- function makeSaver(funk) {
- let savedResult = funk()
- let result = () => {
-
- return savedResult
- }
- 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
- function starter (number) {
- setTimeout(() => {
- if(number > 0){
- console.log(number)
- number = number-1
- return starter(number)
- } else {
- return console.log("done")
- }
- }, 1000)
- }
- //starter(5)
|