JS前端开发联盟群JavaScript

[JavaScript] iterator和iterable

2016-03-05  本文已影响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: ()=>{
        //
    }
}
上一篇下一篇

猜你喜欢

热点阅读