class Counter{
constructor(limit){
this.limit=limit;
}
[Symbol.iterator](){
let count=1,
limit=this.limit;
return{
next(){
if(count<=limit){
return{done:false,value:count++};
}else{
return{done:true};
}
}
};
}
}
let counter1=new Counter(5);
let it = counter1[Symbol.iterator];
let iter=counter1[Symbol.iterator]();
//let iter1=iter;
//console.log(it);
//console.log(iter===iter1);
let str="abcdefghi";
console.log(str[Symbol.iterator]);
console.log(str[Symbol.iterator]());
let iters=str[Symbol.iterator]();
let iters1=iters;
console.log("for of counter1");
for(let i of counter1){
if(i>3){
break;
}
console.log(i);
}
for(let i of counter1){
if(i>3){
break;
}
console.log(i);
}
console.log("for of iter,first:");
for(let i of iters){
if(i>'d'){
break;
}
console.log(i);
}
console.log("second, continue:")
for(let i of iters){
if(i>'g'){
break;
}
console.log(i);
}
console