2012-04-08 16 views
1

私はここにJavaScriptの利回りを使用できないのはなぜですか?

MDN: Generators and Iterators

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

var g = fib(); 
for (var i = 0; i < 10; i++) { 
    console.log(g.next()); 
} 

このコードは、Node.jsの中で実行されている場合、私はそれがのNode.js、クロムまたはFirefox

+0

私のための作品FF10 – kirilloid

+0

私は行方不明です。 before文 yield i; – Hoa

+0

私はそれを見ましたが、それを無視しても動いています。 – kirilloid

答えて

2

これは、新しいバージョンのJavaScriptインタプリタでテストされているEcmaScript.next機能です。

Mozilla's "Iterators and Generators"は、それらの使用方法を説明しています。

どのブラウザがどのES.next機能をサポートしているか確認するには、kangax's compatibility chartbrowser specific reportsを参照してください。 Chrome全体ではまだありませんが、jmar777はV8でサポートしていると報告しています(2013年8月現在)。

+1

ヘッドアップ:この回答が正しかった時点で、ジェネレータは現在仕様のドラフトに進み、V8で実装されています(ノードv0.11.xにあります)。 – jmar777

+0

@ jmar777、私の編集をご覧ください。私は書き直して最新のものにしました。 –

1

で働いて得ることができないからコードを実行しようとしていますアプリケーションをサーバー側で使用しても問題ありません。これは、コードブロックの実行環境ではないため、使用しているブラウザは問題ありません。サーバー上にあり、Node.jsがV8のバージョンまだES6をサポートしていないJSエンジン。

+0

「ES6」と呼ぶのは時期尚早です。 –

関連する問題