2015-04-06 57 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); 
}