{site_name}

{site_name}

🌜 搜索

ES6 Generator函数是一种特殊类型的函数,可以通过function*关键字定义

前端 𝄐 0
es6函数写法,es6函数定义,es6函数式编程入门,es6filter函数的用法,es6 eval函数,es6函数声明
ES6 Generator函数是一种特殊类型的函数,可以通过function*关键字定义。与普通函数不同,它可以在执行过程中暂停,并且支持从外部控制继续执行。Generator函数返回一个迭代器对象,可以通过调用其next()方法来启动或恢复执行。

以下是一个简单的例子,演示Generator函数如何生成斐波那契数列:

javascript
function* fibonacci() {
let [prev, curr] = [0, 1];
while (true) {
[prev, curr] = [curr, prev + curr];
yield curr;
}
}

const fib = fibonacci();
console.log(fib.next().value); // 1
console.log(fib.next().value); // 2
console.log(fib.next().value); // 3
console.log(fib.next().value); // 5


在上面的例子中,fibonacci()定义了一个无限循环,每次迭代计算出下一个斐波那契数并使用yield语句暂停执行并将当前值返回给调用方。通过调用next()方法,可以控制Generator函数继续执行下去,并返回下一个值。由于fibonacci()是一个无限循环,因此调用next()方法可以一直返回新的值。