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: ()=>{
//
}
}