2011-08-24 32 views
3

我正在嘗試使用HTML5的新canvas對象,其中呈現和製作一些簡單形狀的動畫。我的畫布的腳本有以下功能:使用'yield'關鍵字的Javascript生成器

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在所有的工作。兩個瀏覽器都是最新版本,我的腳本標記標記爲版本= 1.8(版本= 1.7也不工作)。

是在Chrome或東西不工作的「產量」關鍵字?我當然希望它確實如此;發電機使更清潔的代碼!

我找不到任何具體的是或否的回答這個問題。

回答

4

迭代器和發電機是(現在)Mozilla的擴展,這意味着你將只能夠在Mozilla的實現(的JavaScript(TM))使用它們。

我說:「現在」,因爲這些功能將在ECMAScript標準,ECMAScript Harmony的下一個版本將大概介紹。

+0

解釋它!多麼令人失望......謝謝。 –

+0

這個答案現在已過時,因爲'yield'剛剛添加到Google Chrome。 – hippietrail

1

是在Chrome或東西不工作的「產量」關鍵字?

就是這樣。抱歉。 yieldlet尚未在Chrome(或Opera,Safari或IE)中使用。

+1

真的嗎? Chrome確實落後於此......自Firefox 2以來,Mozilla支持生成器和迭代器(2008年8月,我相信)! –

+0

這個答案現在已過時,因爲'yield'剛剛添加到Google Chrome。 – hippietrail

+1

哪裏?在金絲雀?它當然不是穩定的,它不在Dev中。 –