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