为obj添加iterator接口,接口在Symbol.iterator属性中
let obj = {
uName: '张三',
age: 20,
addr: '轩辕'
};
//为obj添加iterator接口,接口在Symbol.iterator属性中
obj[Symbol.iterator] = function() {
// Object.keys()获取的是obj的key是一个数组
let key = Object.keys(this);
let index = 0;
return {
next() {
if (index < key.length) {
return {
value: obj[key[index++]],
done: false
}
} else {
return {
value: undefined,
done: true
}
}
}
}
}
for (let i of obj) {
console.log(i);
}
// 张三
// 20
// 轩辕