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的博客!