在笔记它指出:理解迭代器协议
的迭代协议允许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