1.es5實現
const obj = {
name: 'ha',
age: 12,
sex: 'man'
};
obj[Symbol.iterator] = function(){
let index = 0;
const keysArr = Object.keys(this);
const _this = this;
return {
next: function () {
if (index < keysArr.length) {
return {
value: keysArr[index] + '--' + _this[keysArr[index++]],
done: false
}
} else {
return {
value: undefined,
done:true
}
}
}
}
};
console.log([...obj]);
- 這裏閉包的作用就是記錄遊標的位置。
結果如下: