美文网首页
ES6_iterator接口机制19-10-21

ES6_iterator接口机制19-10-21

作者: 你坤儿姐 | 来源:发表于2019-11-03 17:45 被阅读0次

1.iterator 是接口机制,为不同的数据提供统一的访问机制

//iterator内部机制,ES6已经将这套机制部署到指定的数据类型上了(数组,字符串,arguments, set容器,map容器),可以用for of 去遍历循环了
//模拟指针对象(遍历器对象)
function myIterator(arr) {
     let nextIndex = 0; //记录指针的位置
        return {//遍历器对象
           next: function (){
                 return nextIndex < arr.length ? {value: arr[nextIndex++], done: false} : {value: undefined, done: true}
            }
       }
}
//准备一个数据
let arr = [1,4,65,abc];
let iteratorObj = myltertator(arr);
console.log(interatorObj.next())//打印结果:{value: 1 done: false}
console.log(interatorObj.next())//打印结果:{value: 4, done: false{
console.log(interatorObj.next())//打印结果:{value: 65, done: false}
console.log(interatorObj.next())//打印结果:{value: "abc", done: false}
console.log(interatorObj.next())//打印结果:{value: undefined, done: true}

for (let i of arr){
   console.log(i)
}
打印结果:
1
4
65
abc

let str = 'abcd';
for (let i of str){
   console.log(i)
}
打印结果: 
a
b
c
d

function fun (){
    for(let i of arguments){
        console.log(i)
    }
}
fun(1,6,5,'abc');
打印结果:
1
6
5
abc

//报错: obj is not iterable 说明obj是不能被迭代的


相关文章

网友评论

      本文标题:ES6_iterator接口机制19-10-21

      本文链接:https://www.haomeiwen.com/subject/nbmzmctx.html