迭代器
迭代器解决对象不能使用for of方法
let person = {
name:'Giles',
age:23,
[Symbol.interator]:function(){
1. 首先获取key值
let keys = Object.keys()
2. 定义下标
let index
3. 定义一个next方法
return {
next:()=>{
1. 获取key和value值
let proName = keys[index]
let proValue = this[proName]
let result;
2. 继续迭代添加判断
if(proName){
result = {
// 这里是中括号proName,否则获取的不是key
value:{[proName]:proValue},
done:false
}
}else{
result = {
value:undefined,
done:true
}
}
index++
return result
}
}
}
}