es6(14)--iterator for ...of循环

 1 //iterator  for ...of循环
 2 {
 3     let arr=['hello','world'];
 4     let map=arr[Symbol.iterator]();
 5     console.log(map.next())
 6     console.log(map.next())
 7     console.log(map.next())
 8 }
 9 {
10     let obj={
11         start:[1,3,2],
12         end:[7,9,8],
13         [Symbol.iterator](){
14             let self=this;
15             let index=0;
16             let arr=self.start.concat(self.end);
17             let len=arr.length;
18             return {
19                 next(){
20                     if(index<len){
21                         return {
22                             value:arr[index++],
23                             done:false
24                         }
25                     }else{
26                         return {
27                             value:arr[index++],
28                             done:true
29                         }
30                     }
31                 }
32             }
33         }
34     }
35     for(let key of obj){
36         console.log(key)
37     }
38 }
39 {
40     let arr=['hello','world'];
41     for(let value of arr){
42         console.log('value',value)
43     }
44 }

猜你喜欢

转载自www.cnblogs.com/chenlw/p/9227922.html