首页 » JavaScript » 没有重载

没有重载

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

function addSomeNumber(num) {
    return num + 100;
}
function addSomeNumber(num) {
    return num + 200;
}
var result = addSomeNumber(100); //300

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

var addSomeNumber = function (num) {
        return num + 100;
    };
addSomeNumber = function (num) {
    return num + 200;
};
var result = addSomeNumber(100); //300

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

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.