Generator和Symbol的使用
by Mike Lin
HTML
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
JavaScript
function* generator () {
yield 'h'
yield 'e'
yield 'l'
yield 'l'
yield 'o'
}
var g = generator()
// 因为有@@iterator,所以它是可迭代的
typeof g[Symbol.iterator] === 'function'
// 它是一个迭代器,因为它有.next方法
typeof g.next === 'function'
// generator对象的迭代器是generator对象本身
g[Symbol.iterator]() === g
// 可以使用ES6的spread特性迭代或者Array.from
console.log([...g])
//console.log(Array.from(g))