美文网首页JS前端开发联盟群JavaScript
[JavaScript] iterator和iterable

[JavaScript] iterator和iterable

作者: 何幻 | 来源:发表于2016-03-05 08:08 被阅读68次

    1. iterator

    <u></u>iterator是具有无参next方法的对象,这个next方法返回{value: anything ,done: boolean}

    2. iterable

    <u></u>iterable是具有迭代行为的对象。
    为了具有迭代行为,要遵循迭代协议,即,
    对象必须实现Symbol.iterator无参方法(或者继承了这个方法),
    并让这个方法返回一个iterator

    例如:

    var iterable = {
        [Symbol.iterator]: () => {
            var v = 0;
    
            //返回iterator
            return {
                next: function () {
                    return {
                        value: ++v,
                        done: v > 3
                    };
                }
            };
        }
    }
    
    console.log(...iterable);    //1 2 3
    

    注:作为对象属性的方法名可以简写,

    var obj={
        method:function(){
            //
        }
    }
    
    //等价于
    var obj={
        method(){
            //
        }
    }
    
    //如果function中不使用this,可以用lambda函数改写
    var obj={
        method: ()=>{
            //
        }
    }
    

    相关文章

      网友评论

        本文标题:[JavaScript] iterator和iterable

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