Symbol&迭代器
Symbol
唯一值
var a = new Symbol();
迭代器
它提供一个next()方法,用来返回序列中的下一项.
迭代器对象一旦被创建,就可以反复调用next().
function 生成器(){
    var _version = 0
    var max = 10
    return{
        next(){
             _version++
            return {
                version:_version
                done:false
            }
        }
    }
}
生成器
迭代器生成的语法糖
function* 生成器(){
    var version = 0;
    while(true){
        version += 1
        yield version
    }
}
for of
访问迭代器的语法糖
数组能迭代,对象不能迭代,因为数组有属性Symbol.iterator
for(let key of array){
    console.log(key)
}
array[Symbol.iterator] //有值
for(let key of obj){
    console.log(key)
}//报错
obj[Symbol.iterator] //undefined
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 Roxas Deng的博客!