2013-10-11 127 views
1

我有以下代碼。從Array.prototype方法返回數組的值

Array.prototype.range = function(start, count) { 
    this.push(start); 
    if(this.length == count){ 
    return this; 
    }; 
    this.range(start+1, count) 
} 

它的功能在於它修改了我想要的數組,但沒有返回值。

test = new Array; 
test.range(0,3); 
console.log(test); 

將輸出[0,1,2],但

test = new Array; 
console.log(test.range(0,3)); 

給我不確定。有人可以向我解釋爲什麼「返回這個;」在原型方法中並不實際返回對象?

謝謝。

+0

我不太清楚它應該做的 – Ibu

+1

(無關),你錯過了最後'this.range'電話後分號和分號後'if'塊是不必要的。 –

回答

4

您需要從初始呼叫返回。

return this.range(start + 1, count); 
+0

就是這樣,謝謝! –