JavaScript 1.7中的生成器,星号(*)会产生什么区别

时间:2014-06-04 10:42:11

标签: javascript ecmascript-harmony

我正在探索Javascript 1.7中引入的新功能。在生成器中,我遇到了以下代码,无法理解星号(*)对函数声明的区别。链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7#Generators

使用星号JSFiddle

只有Firefox支持Javascript 1.7。在Firefox中打开这个小提琴

function *fib(){
    var i=0,j=1;
    while(true){
        yield i;
        var t=i;
        i=j;
        j+=t;
    }
} 

var g=fib();
console.log(g.next().value);//0
console.log(g.next().value);//1
console.log(g.next().value);//1

没有星号,

function fib(){
    var i=0,j=1;
    while(true){
        yield i;
        var t=i;
        i=j;
        j+=t;
    }
}

var g=fib();
console.log(g.next().value);//undefined
console.log(g.next().value);//undefined
console.log(g.next().value);//undefined

0 个答案:

没有答案