1. iterator
<u></u>iterator是具有無參next方法的對(duì)象,這個(gè)next方法返回{value: anything ,done: boolean}
2. iterable
<u></u>iterable是具有迭代行為的對(duì)象。
為了具有迭代行為,要遵循迭代協(xié)議,即,
對(duì)象必須實(shí)現(xiàn)Symbol.iterator無參方法(或者繼承了這個(gè)方法),
并讓這個(gè)方法返回一個(gè)iterator。
例如:
var iterable = {
[Symbol.iterator]: () => {
var v = 0;
//返回iterator
return {
next: function () {
return {
value: ++v,
done: v > 3
};
}
};
}
}
console.log(...iterable); //1 2 3
注:作為對(duì)象屬性的方法名可以簡(jiǎn)寫,
var obj={
method:function(){
//
}
}
//等價(jià)于
var obj={
method(){
//
}
}
//如果function中不使用this,可以用lambda函數(shù)改寫
var obj={
method: ()=>{
//
}
}