let myObj = {
a: 2,
b: 3
}
Object.defineProperty(myObj, Symbol.iterator, {
enumerable: false,
writable: false,
configurable: true,
value: function () {
var o = this;
var idx = 0;
var ks = Object.keys(o); // Object.keys 把对象中的key取出转为一个数组
return {
next: function () {
return {
value: o[ks[idx++]],
done: (idx > ks.length)
}
}
}
}
})
for (let a of myObj) {
console.log(a); // 2 3
}