天天看點

js裡的疊代器模式

疊代器模式的定義:<code>提供一個方法順序通路一個聚合對象中的各個元素,而又不需要暴露該對象的内部表示</code>。

簡單來說就是實作對一個對象的疊代。。。

這在ES6裡已經有了原生的支援:<code>[Symbol.iterator]</code>,該方法在所有的數組、Map、Set中都已經有了實作,是以可以通過<code>for...of...</code>來疊代周遊這些對象;但是對象裡是沒有内置該方法的,可以通過手動添加疊代器來實作對象的疊代,原理是獲得對象中的所有key,然後挨個查找key對應的value。

以下是實作一個自帶疊代器的類的代碼:

就是通過一個外部對象來通路一個對象的屬性,方法與上面的大同小異就不多寫了。

繼續閱讀