[JavaScript] iterator和iterable

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: ()=>{
        //
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容