iterator与for…of原理
iterator原理:
当可遍历对象被for…of遍历的时候,[Symbol.iterator] ( )就会被调用,返回一个iterator对象。
var arr = [1, 2, 3, 4]
let item = arr[Symbol.iterator]
console.log(item);
console.log(item.next());
console.log(item.next());
console.log(item.next());
console.log(item.next());
console.log(item.next());
for…of的原理:
当可遍历对象被for…of遍历的时候,[Symbol.iterator] ( )就会被调用,返回一个iterator对象。
iterator对象里面有一个next()方法,调用next()方法,返回一个对象,对象里面有value和done属性,一直到
done为true的时候结束执行
for…of为什么不能遍历对象: 因为对象上面没有(Symbol.iterator)方法
//可以打印试试
console.log(Array.prototype);
console.log(String.prototype);
console.log(Set.prototype);
console.log(Map.prototype);
console.log(Object.prototype);