首页 > 专栏 > 前端 > 文章详情
Genertor 函数在之前 var 声明变量和赋值产生问题 发布于:2021-03-12 16:52:12   来源:阮一峰   查看:5  讨论:0
ES5的状态机写法:
var ticking = trye;
var clock = function () {
    if (ticking){
        console.log('Tick!')
    }else{
        console.log('Tock!')
    }
    ticking = !ticking;
}
上面的 clock 函数一共有两种状态( Tick 和 Tock ),每运行一次,就改变一次状态。这个函数如果用 Genertor 实现,代码如下:
var clock = function* f() {
    while (true){
        console.log('Tick!');
        yield;
        console.log('Tock!');
        yield;
    }
};
clock.next();//clock.next is not a function 有谁能解释一下?
把赋值变量写到后面:
function* f() {
    while (true){
        console.log('Tick!');
        yield;
        console.log('Tock!');
        yield;
    }
};
var clock = f();
clock.next();//Tick 正常输出
clock.next();//Tock 正常输出

评论

  • 匿名