То, чего я хочу достичь, - это иметь возможность получить следующее значение (уникальное) внутри factorialSequence по нажатию кнопки.
На данный момент я определил функцию factorialSeq () ифункция generator (), как показано ниже.Функция генератора принимает в качестве аргумента factorialSeq ().При нажатии кнопки я смог получить только первое значение в последовательности, но если я войду в консоль, все значения в последовательности будут возвращены в правильном порядке.
<button style="padding: 20px" id="nextBtn">Next</button>
<script>
let nextBtn = document.getElementById('nextBtn');
function generator(sequencer) {
const seqArgs = [...arguments];
seqArgs.shift();
const seq = sequencer(...seqArgs);
return {
next() {
return seq();
}
}
}
function factorialSeq() {
let currentNumber = 1;
let result;
return function factorialReturn() {
if (!result) {
result = 1;
return result;
}
result *= currentNumber;
currentNumber += 1;
return result;
}
}
nextBtn.addEventListener('click', function () {
var gen = generator(factorialSeq);
console.log(gen.next());
// console.log(gen.next());
// console.log(gen.next());
// console.log(gen.next());
});
</script>
Я ожидаю, что результат будет отличаться каждый раз, когда я нажимаю кнопку (т.е. следующее значение в последовательности).Обратите внимание, что я не хочу использовать встроенную функцию генератора в javaScript.Спасибо