美文网首页
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