var obj = { x: 1, y: 2, z: 3 };
// 能否以某种方式为上面的语句使用展开运算而不导致类型错误
// 如果可以,写出解决方式
// 为何这里可以使用this呢,因为在使用[...obj]
// 的时候会调用obj.Symbol.iterator(),得到返回的iteral对象然后next到低
obj[Symbol.iterator] = function* () {
for (let [x,y] of Object.entries(this)) {
yield [x,y];
}
};
console.log([...obj]) // TypeError)