我想了解如何編寫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