gpt4 book ai didi

javascript - ES6 生成器 : i += yield i;

转载 作者:行者123 更新时间:2023-12-02 17:59:45 25 4
gpt4 key购买 nike

所以这段代码之前作为 es6 中生成器的示例发布在相同的位置:

function *addGenerator() {
var i = 0;
while (true) {
i += yield i;
}
}

var gen = addGenerator();
console.log(gen.next().value);
console.log(gen.next(3).value);
console.log(gen.next(5).value);

得出:0, 3, 8

我不明白为什么这个 += Yield i 有效。我猜这是因为我们要等到获得下一个值,如果您在 next() 中传递某些内容,那么它就是隐式返回。到目前为止,一切都很好。但为什么 var 的名称是 i 呢?

如果我这样做:

function *addGenerator() {
var i = 0;
var j = 0;
while (true) {
i += yield j;
}
}

它不起作用,所以这个变量有一些特别的地方......谁知道?

最佳答案

在第二个示例中,您将得到 0 0 0 作为输出,因为 gen.next().valuej 的值> 变量 - 这是 0 - 您不会在循环中分配给它。

yield 关键字的一般形式可以看作是这样的:

var passedToNext = yield returnThisAsNext_value;

关于javascript - ES6 生成器 : i += yield i;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20657116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com