JavaScriptのyieldを使ってイテレータを作りたいのだが
JavaScript1.7の yield 文を使ってイテレータを作りたいのだが、ジェネレータの中からは this が参照できないみたいで悩む。理由はなんとなくわかるけど、結局、解決策はわからず。
Array.prototype.iterator = (function() {
for (i = 0; i < this.length; i++) // ←ここで this.length が 0 になる(TT
yield this[i];
yield false;
})();var r = ["a", "b", "c", "d"];
while (s = r.iterator.next()) {
alert(s);
}
どうしたものやら。