重载函数是说:声明了几个功能类似的同名函数,他们的参数个数不同,或者参数类型不同,或者参数顺序不同。
函数重载常用来实现功能类似而所处理的数据类型不同的情况。
在js中是没有实现函数重载的,后出现的同名函数会覆盖先声明的同名函数,就像下面这样:
function a(a){console.log(a)};
function a(a,b){console.log(a+b)};
function a(a,b,c){console.log(a+b+c)};
a(1) //1
a(1,2) //NAN
a(1,2,3) //NAN
但是我们有一些办法可以间接的实现函数重载:利用js中的特殊对象arguments来判断传入参数的个数和类型
function a(){
arguments.length === 1 ? console.log(arguments[0]) : console.log(...arguments)
}
a(1) // 1
a(1,2,3) // 1 2 3
网友评论