我正在探索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