5.5.1 没有重载(深入理解)

  将函数名想象为指针,也有助于理解为什么ECMAScript中没有函数重载的概念。如下例子:

function addSomeNum(num)
{
    return num+100;
}

function addSomeNum(num)
{
    return num+200;
}

var result=addSomeNum(100);//300

  显然,这个例子中声明了两个同名函数,而结果则是后面的函数覆盖了前面的函数。以上代码实际上与下面的代码是一致的。

var addSomeNum=function(num)
{
    return num+100;
};

var addSomeNum=function(num)
{
    return num+200;
};

var result=addSomeNum(100);//300

  通过观察重写之后的代码,很容易看清楚到底是怎么回事儿。在创建第二个函数时,实际上覆盖了引用第一个函数的变量addSomeNum。

posted @ 2015-05-15 23:37  杨潇love  阅读(165)  评论(0编辑  收藏  举报