首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程
对于ES6的生成器函数总结有四点:
1. yield必须放置在*函数中;
2. 每次执行到yield时都会暂停函数中剩余代码的执行;
3. *函数必须通过函数调用的方式(new方式会报错)才能产生自身的实例,并且每个实例都互相独立;
4. 一个生成器函数一旦迭代完成,则再也无法还原,一直停留在最后一个位置;
尤其是第二点,是非常强大的功能,暂停代码执行,以前只有在浏览器环境中,alert、comfirm等系统内置函数才具有类似的能力,所以如果熟悉多线程的语言,你会找到类似的感觉,于是也有人说,有了yield,NodeJS就有协程的能力,完全可以处理多个需要协作的任务。
也是因为第二点,生成器函数也具有惰性求值的特性,针对这一特性,我们可以很容易写出科里化函数进