【发布时间】:2020-01-06 05:48:55
【问题描述】:
我一直在探索 Javascript 生成器,这没有问题,但我怀疑生成器是如何改变 'const' 的值的。据我所知,如果一个变量被声明为 const,它就不能被改变。
<script>
function * numbers(i=0)
{
while(true){
yield ++i;
}
}
const num = numbers(5); ///// no error
console.log(num.next().value);
console.log(num.next().value);
console.log(num.next().value);
</script>
output
6
7
8
【问题讨论】:
-
因为生成器函数返回一个
generator对象,所以即使变量是用const定义的,对象的内部值也可以改变 -
num不会更改为其他值?但当然,调用.next()可以在连续调用时返回不同的内容。
标签: javascript ecmascript-6 generator