JavaScript生成器与“yield”关键字

4
我正在尝试使用HTML5的新canvas标签,用它来渲染和动画一些简单的形状。我的canvas脚本有以下函数:
function initializeSquarePositions(rows, columns) {
    for (var x = 0; x < canvas.width; x += canvas.width / columns)
        for (var y = 0; y < canvas.height; y += canvas.height / rows)
            yield {x: x, y: y};
}

由于某些原因,这段代码在Firefox中表现得非常好,但在Chrome中根本不起作用。两个浏览器都是最新版本,并且我已经将脚本标记为version=1.8(version=1.7也无效)。

'yield'关键字在Chrome中是否不起作用?我希望它能够正常工作,生成器可以使代码更加清晰!

我找不到任何明确的答案。

2个回答

5

迭代器和生成器是(目前)Mozilla扩展,这意味着您只能在Mozilla实现(JavaScript(TM))上使用它们。

我说“目前”,因为这些功能可能会在下一个ECMAScript标准版本——ECMAScript Harmony中引入。


此回答已经过时,因为yield刚刚被添加到谷歌浏览器中。 - hippietrail

1
“yield”关键字在Chrome中不起作用了吗?”
这就是问题所在。抱歉,“yield”和“let”在Chrome(或Opera、Safari、IE)中还没有实现。

1
真的吗? Chrome 在这方面真的落后了... 生成器和迭代器自 2008 年 8 月起就被 Mozilla 支持了! - zfogg
这个答案已经过时了,因为yield刚刚被添加到了Google Chrome。 - hippietrail
1
在哪里?在Canary中吗?它肯定不在稳定版中,也不在开发版中。 - Simon Sarris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接