let obj2 = {
name: "XX",
age: 20,
job: 'teacher',
[Symbol.iterator]() {
const self = this
const keys = Object.keys(self)
let index = 0
return {
next() {
if (index < keys.length) {
return {
value: self[keys[index++]],
done: false
}
} else {
return { value: undefined, done: true }
}
}
}
}
}
for(let item of obj) {
console.log(item)
}
class Obj1 {
name = "rz"
age = 11
[Symbol.iterator]() {
const self = this
const keys = Object.keys(self)
let index = 0
return {
next() {
if (index < keys.length) {
return {
value: self[keys[index++]],
done: false
}
} else {
return { value: undefined, done: true }
}
}
}
}
}
function Obj(name, age) {
this.name = name
this.age = age
}
Obj["prototype"][Symbol.iterator] = function () {
const self = this
const keys = Object.keys(this)
let index = 0
return {
next () {
if (index < keys.length) return { value: self[keys[index++]], done: false }
return {value: undefined, done: true}
}
}
}
const obj = new Obj("rz", 22)
for (let i of obj) {
console.log(i)
}