12345678910111213141516171819202122232425262728293031323334353637383940 |
- <header>make Saver</header>
- <body>
- <script>
- const makeSaver = (func) => {
- let valueSet = false;
- let savedValue = null;
- const saver = () => {
- if (!valueSet) {
- savedValue = func();
- valueSet = true;
- }
- return savedValue;
- }
- return saver;
- }
- 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
- let namePrompt = prompt.bind(window, 'Как тебя зовут?')
- let nameSaver = makeSaver(namePrompt)
- alert(`Привет! Prompt еще не было!`)
- alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
- alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)
- </script>
- </body>
|