我想弄清楚如何將一個itertor添加到一個JavaScript類,使得該類可以用於for ... in循環中。遵循Mozilla的指示不會產生他們聲稱的結果。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators 的jsfiddle給出例子:http://jsfiddle.net/KQayW/將一個自定義迭代器添加到一個javascript類
function Range(low, high){
this.low = low;
this.high = high;
this.current = low;
this.next = function() {
if (this.current > this.range.high)
throw StopIteration;
else
return this.current++;
}
}
function RangeIterator(range){
this.range = range;
this.current = this.range.low;
}
RangeIterator.prototype.next = function(){
if (this.current > this.range.high)
throw StopIteration;
else
return this.current++;
};
Range.prototype.__iterator__ = function(){
return new RangeIterator(this);
};
var range = new Range(3, 5);
for (var i in range)
document.getElementById("test").innerHTML = i+"</br>"; // prints 3, then 4, then 5 in sequence
它不會打印出該範圍的數字,它打印出「__iterator__」!
有誰知道如何讓這個工作?
哈。謝謝!我想我沒有仔細閱讀。 – anonymouse