在一篇描述JavaScript中的生成器和迭代器的MDN文章中,找到了JavaScript的代码片段。
function simpleGenerator(){
yield "first";
yield "second";
yield "third";
for (var i = 0; i < 3; i++)
yield i;
}
var g = simpleGenerator();
print(g.next()); // prints "first"
print(g.next()); // prints "second"
print(g.next()); // prints "third"
print(g.next()); // prints 0
print(g.next()); // prints 1
print(g.next()); // prints 2
print(g.next()); // StopIteration is thrown 上面我们读到:
属性包装的HTML中的代码块只能使用产率关键字。
<script type="application/javascript;version=1.7">块(或更高版本)。
实际上,当嵌入HTML文件并包含在前面的标记中时,代码片段可以正常工作。问题是,我在Rhino上尝试过,它似乎在HTML和浏览器之外不起作用。
那么,我如何使用浏览器之外的生成器呢?
发布于 2011-10-30 10:37:28
要启用JavaScript 1.7支持,必须使用
Context.setLanguageVersion()API调用将版本设置为170。如果使用的是Rhino,则可以在命令行中指定-version 170,也可以在shell执行的代码中调用version(170)。
发布于 2014-12-09 18:58:18
改变背景:
Context ctx = Context.enter();
ctx.setLanguageVersion(Context.VERSION_1_7);
try {
CompilerEnvirons compEnv = new CompilerEnvirons();
compEnv.initFromContext(ctx);
...
}
finally { Context.exit(); }https://stackoverflow.com/questions/7944389
复制相似问题