[英]Generators and “yield” outside the browser
这是片断被发现在这里 ,一个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
在上面我们读到:
yield关键字仅适用于包含在HTML中的HTML中的代码块
<script type="application/javascript;version=1.7">
块(或更高版本)。
实际上,当嵌入HTML文件并包含在上述标签中时,该片段工作正常。 问题是,我在Rhino中尝试过,它似乎不能在HTML和浏览器之外工作。
那么如何在浏览器之外使用生成器呢?
https://developer.mozilla.org/en/New_in_Rhino_1.7R1#JavaScript_1.7_features
要启用JavaScript 1.7支持,必须使用
Context.setLanguageVersion()
API调用将版本设置为170。 如果您使用的是Rhino shell,则可以在命令行中指定-version 170
,或者在shell执行的代码中调用version(170)
。
要改变背景:
Context ctx = Context.enter();
ctx.setLanguageVersion(Context.VERSION_1_7);
try {
CompilerEnvirons compEnv = new CompilerEnvirons();
compEnv.initFromContext(ctx);
...
}
finally { Context.exit(); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.