2015-04-06 64 views
-2

因此,我今天正在閱讀這本書「Eloquent Javascript」,並且就他們帶給我的每個示例而言,我都試圖研究並觀察它。我遇到了這個函數,我不知道爲什麼需要變量「結果」。我所知道的是,如果它不在函數中,函數輸出不起作用。我無法理解爲什麼?有人能爲我快速瀏覽一下嗎?簡單的JS功能。需要澄清變量

function power(base, exponent) { 
    if (exponent == undefined) 
    exponent = 2; 
    var result = 1; 
    for (var count = 0; count < exponent; count++) 
    result *= base; 
    return result; 
} 
+0

如果「結果」不在函數中,沒有變量可以返回,那麼你可能會期望它做什麼?有*沒有*變量稱爲「結果」... – neminem

+1

「功率」功能的目的是計算一些東西。 'result'用於存儲操作的(中間)結果。你會怎麼做呢? –

回答

1

如果遞歸定義功能,你不需要中間結果

function power(base, exponent, value) { 
    value = value || 1; 

    // assumes exponent of 0 if none provided. n^0 = 1. 
    if (!exponent) 
    return value; 

    return power (base, exponent - 1, value * base); 
} 

power(2, 3) // 8 
power(9) // 1, since 9^0 is 1 

,使其處理負指數,你也可以試試這個:

function power(base, exponent, value) { 
    value = value || 1; 

    // assumes exponent of 0 if none provided. n^0 = 1. 
    if (exponent == 0) return value; 
    if (exponent < 1) return (1/power(base, -1 * exponent, value)); 

    return power (base, exponent - 1, value * base); 
}