这是一个人为的例子。
我可以使用一个实例数组来做到这一点:
function* cut () {
for (let slice = 0; slice < 3; slice++) yield '?';
}
const cake = ['?'];
cake[Symbol.iterator] = cut;
const slices = [...cake];
//=> ['?', '?', '?']
但是我不能对字符串做同样的事情
const cake = '?';
cake[Symbol.iterator] = cut;
const slices = [...cake];
//=> ['?']
为什么?