2012-08-09 32 views
0

我可以這樣做:能從自己調用一個函數嗎?

function something(){ 

    for(x in y){ 
     if(x.toString() == "[object Object]"){ 
      something(); 
     } 
    } 

} 
+1

您應該使用'typeof x ==='object''而不是您在'if'比較中的內容。 – Brad 2012-08-09 01:26:18

+0

@Brad - 我試圖檢查只是對象文字,我該如何做到這一點 – PitaJ 2012-08-09 04:52:06

回答

3

是的。它被稱爲遞歸,並且它在JavaScript中可用。在你的情況下,這將是無限遞歸,這會導致堆棧溢出。確保你的條件是否被調用實際上會改變,以避免無限遞歸。

+0

真棒謝謝:) – PitaJ 2012-08-09 01:25:39

+0

在他的情況下,它不會是一個無限遞歸,雖然因爲我猜'y'畢竟是有限數組! – UnLoCo 2012-08-09 01:27:15

+1

@UnLoCo,是的,這將是無限的。但是,我確信發佈的代碼僅僅是一個例子,而不是他的實際代碼。 – Brad 2012-08-09 01:28:09