1234567891011121314151617181920212223242526272829303132 |
- const makeSaver = functionParam => {
- let result;
- let runned = false;
- return (...args) => {
- if(!runned) {
- result = functionParam.apply(null, args);
- runned = true;
- }
- return result;
- };
- }
- let saver = makeSaver(Math.random);
- let value1 = saver();
- let value2 = saver();
- console.log(value1 === value2); // true
- let saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)]); //saved function called
- let value3 = saver2();
- let value4 = saver2();
- console.log(value3 === value4); // true
- let namePrompt = prompt.bind(window, 'Как тебя зовут?');
- let nameSaver = makeSaver(namePrompt);
- alert(`Привет! Prompt еще не было!`);
- alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`);
- alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`);
|