当前位置: 代码迷 >> 综合 >> [提高]ES2015中最惊艳特性之生成器函数初步
  详细解决方案

[提高]ES2015中最惊艳特性之生成器函数初步

热度:94   发布时间:2023-10-22 10:22:38.0

我们来设计一个简单无比的需求 
比如我要通过简单的函数来返回 
1.我的名字(zhangsan) 
2.我的年龄(18岁 )

往往我们需要写2个函数,如function showName/showAge 
或者我们通过一个函数来返回对象

function showMe(){
    return {name:"zhangsan",age:18};
}
  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

但是ES2015有了生成器Generator

function *showMe() {
    let [name,age] = ["zhangsan",18];yield name;yield age;
}
let me = showMe();
console.log(me.next().value);//zhangsan
console.log(me.next().value);//18
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

概念了解 
生成器中最重要的过程就是yield语句。 
而yield的作用是”切出当前函数运行时”(比较难理解,姑且可以理解为从线程切换到协程)