1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // makeProfileTimer
- let makeProfileTimer = () => {
- let result = performance.now()
- // console.log('result',result)
- return () => {
- let timer = performance.now()
- // console.log('timer', timer)
- return timer - result
- }
- }
- var timer = makeProfileTimer()
- alert(timer())
- // makeSaver
- var makeSaver = (callback) =>{
- var result = callback
- return () =>{
- 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
-
- // Final Countdown
- for (let i = 0; i <= 5; i++) {
- setTimeout( () => {
- i === 5 ? console.log('Lets go!') : console.log(5 - i) }, i * 1000)
- }
|