در جلسات قبل شما گفتید که this وقتی در arrow function استفاده میکنیم میاد و از جایی که تعریف کردیم مقدار اون را میگیره مثلا در یک تعریف شی کلمه this داخل arrow function میاد و کلاس که توی اون تعریف شده استفاده میکنه پس چرا اینجا مقدار this.iteratable.length به ما خطا داد؟
let test = {
name: 'mahdi',
family: 'abedini',
iterated: [],
next: () => {
if (this.iterated.length >= 2) {
return {
done: true
}
}
this.iterated.push(this.name);
return {
value: 1,
done: false
}
},
[Symbol.iterator]: function () {
return this;
}
}
// for (let i = 0; i < 10; i++) {
// console.log(test.next());
// }
for (let testElement of test) {
console.log(testElement);
}