一、重载
重载是函数名相同,参数不同。
//第一次声明函数变量
function sum(a, b) {
return a+b
}
console.log(sum);
console.log(sum(1,2));
//第二次声明函数变量
function sum(a, b, c) {
return a+b+c
}
console.log(sum);
console.log(sum(1,2,3));
最终控制台输出结果为:
二、覆盖
重写又称覆盖,一般用于子类覆盖父类的方法。
function test() {
console.log('test1');
}
function test() {
console.log('test2')
}
test()//结果为:test2
结论:
可以看到,方法重名时,JS会以最后定义的函数作为函数体。
JS的函数本身就是一个变量,所以JS只有重写(覆盖),没有重载。