for..of循環首先會向被訪問對象請求一個迭代器對象,然後通過調用迭代器對象的next()方法來遍歷所有返回值。數組有內置的@@iterator,因此for..of可以直接應用在數組上。我們使用內置的@@iterator來手動遍歷數組,看看它是怎麼工作的:
var myArray = [ 1, 2, 3 ];
var it = myArray[Symbol.iterator]();
it.next(); // { value:1, done:false }
it.next(); // { value:2, done:false }
it.next(); // { value:3, done:false }
it.next(); // { done:true }