在筆記它指出:理解迭代器協議
的迭代協議允許JavaScript對象定義或定製 他們的迭代行爲,比如什麼值在 for..of掛繞構造。
當我已經可以使用Object.degineProperty來使某些東西可枚舉時,我看不出有什麼好處。
function withValue(value) {
var d = withValue.d || (
withValue.d = {
enumerable: false,
writeable: false,
configuration: false,
value: null
}
)
// other code;
}
這些協議有什麼好處?如果這只是一些新的語法來安撫循環的新內容,除了簡單地檢查長度並查看其是否耗盡了「列表」中的項目之外,還有什麼好處。
屬性的可枚舉性與迭代器完全無關?最重要的是,屬性沒有**順序**,在其中進行迭代。 – Bergi
迭代器比「列表」更通用。它甚至不需要有一個長度 - 如果你想要它可以是無限的! – Bergi
「*在說明中註明*」 - 什麼?哪裏?哪些筆記? – Bergi