为什么javascript不考虑重载方法而不是考虑具有更多参数的方法

时间:2016-04-20 06:52:04

标签: javascript

我在下面定义了java脚本函数。

function getSum(a, b)
{
    return a + b;
}
function getSum(a, b, c)
{
    return a + b + c ;
}
function getSum(a, b, c, d)
{
    return a + b + c + d;
}


getSum(1,2);
getSum(1,2, 3);
getSum(1,2,3, 4);
getSum(undefined, 1,2);

getSum(undefined, undefined, 1,2);

每次我调用getSum()时只会使用最新版本ie。一个有4个参数被调用?怎么回事?这与java重载有点不同吗?

请解释javascript如何处理方法的重载。

1 个答案:

答案 0 :(得分:1)

  

每次我调用getSum()时只会使用最新版本ie。一个4   参数被调用?怎么回事?这有点   与java重载不同?

因为getSum的初始定义被后来的定义所覆盖,所以无论何时调用该方法,都会使用最后的定义。

这与重载无关,只是定义了那些函数定义的顺序。

如果

function getSum(a, b)
{
    return a + b;
}
最后定义了

,它会为你的所有函数调用提取它。