我想了解如何编写JavaScript对象的枚举器。我遇到了一段Sharepoint code where items of a SP List were being obtained on the client side,在Sharepoint对象上正在执行类似于下面的代码。为JavaScript对象编写枚举器
var enumerator = list.getEnumerator();
while(enumerator.moveNext()) {
var currentItem = enumerator.getCurrent();
// actions on currentItem
}
如果我可以写,可以在使用上述枚举迭代的自定义对象,如何将它看?这是我的尝试,但它不工作:
var list = {
items: ["A", "B", "C", "D", "E"],
counter: -1,
enumerator: {
moveNext: function() {
counter++; // outer object's variable not accessible
if(counter >= items.length)
return false;
else
return true;
},
getCurrent: function() {
return items[counter]; // outer object's variable not accessible
}
},
getEnumerator: function() {
return this.enumerator();
}
}
var enumerator = list.getEnumerator();
while(enumerator.moveNext()) {
var currentItem = enumerator.getCurrent();
alert(currentItem);
}
你能帮助我了解getEnumerator()
如何能写成函数原型是适用于任何枚举对象?
这是有效的,但该对象并不总是被称为'list',不是?理想情况下,它会像'var listItems = getListItems(query); var listEnum = listItems.getEnumerator();'等等。 – SNag
是的,但你的代码正在创建一个单例。让我做一个可以像班级那样做的人 –
是的,那就是我正在寻找的东西。谢谢! – SNag