To solve this problem, we'll use generator in Javascript. A generator is a function that returns (yield) sequence of results instead of a single result.
We define a generator function in JS as:
function* fibonacci(){
// to be implemented
}
We implement the function above as:
function* fibonacci() {
let a = 0, b = 1;
while (true) {
yield a
a = b, b =a +b;
}
}
You can test it like this:
const result = fibonacci()
console.log(result.next().value); //0
console.log(result.next().value); // 1
console.log(result.next().value); // 2
console.log(result.next().value); // 4
console.log(result.next().value); // 8
console.log(result.next().value); //16
Each time you call result.next().value, a new fibonacci number will be returned