2016-11-14 201 views
-2

兩個問題:1)性能的影響流

1)我想知道的最後一個函數(LayerTen())在像這樣對性能的影響:

function execit(){ 
    LayerOne(); 
} 
function LayerOne(){ 
    LayerTwo(); 
} 
// and so on, till: 
function LayerNine(){ //thanks for correcting, Mike 
    LayerTen(); 
} 

當然,我知道它取決於函數中的實際內容,但是它們的結構可能會導致性能問題? 2)如果在下面的例子中產生了多個但是單獨的條件,那麼它的流程是什麼:它們會一次或一個接一個地執行嗎?

if(condition one){ 
    code 
}else{code} 
if(condition two){ 
    code 
}else{code} 
if(condition three){ 
    code 
}else{code} 
// and so on, till: 
if(condition thirty){ 
    code 
}else{code} 
+0

你可以簡單地嘗試這兩個自己:第一個將導致無限遞歸併通過步進第二個會告訴你他們一個接一個地被執行。 – Filburt

+0

它爲什麼會導致無限遞歸?它已經結束了。 – josefa

+0

遞歸因爲LayerTen自己調用。也許你的意思是'函數LayerNine(){LayerTen()}' – MikeT

回答

0

Javascript是單線程的。所以唯一的性能問題是內存消耗。而如果一個別的不消耗過多的內存,功能停留在內存中,直到它完全完成:

Function execit(){ 
//memory usage started 
LayerOne(); 
//memory is recycled 
} 
function LayerOne(){ 
//already two opened functions... 
LayerTwo(); 
//memory is recycled 
} 
// and so on, till: 
function LayerTen(){ 
//ten functions in memory 
LayerTen(); 
//memory recycled 
} 

所以,它把10個功能在內存中,他們都陸續在回收之前。這將是更好的:

function start(){ 
a();//a is right now recycled 
b();//b is right now recycled 
} 

但是這取決於你的實際代碼,如果這是可能的...

+0

但是,如果IIT用於簡化訂單和流程,只是爲了一個眼睛,您知道,那麼它應該可以使用? – josefa

+0

如果在不同的地方多次完成某些功能,只需使用函數即可。 –