什么是函数重载
一个函数有多个功能,只是重复利用了这个函数名。
函数重载有什么好处
如果不使用重载,那么就要有多个个不同的函数,来完成功能,那我们就需要记住5个不同的函数名,和各个函数相对应的参数的个数和类型,显然就麻烦多了。
ECMAScript函数不能像传统意义上那样实现重载,是因为ECMAScript函数没有签名,因为其参数是由包含零个或多个值的数组 arguments 或 命名参数 来表示的。而在其他语言中(如Java)中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可
ECMAScript中的函数名只是对象指针
demo:
function overload(a){console.log('only one param')}function overload(a,b){console.log('two params')}// 在支持重载的编程语言中,eg: javaoverload(1);//only one paramoverload(1,2); //two params// 在 JavaScript 中,因为后定义的函数覆盖了前者//所以仅有第二个函数生效,类似变量的重新赋值overload(1);//two paramsoverload(1,2); //two params
js中怎么实现函数重载:利用arguments
function overload () {if (arguments.length === 1) {console.log('only one param')}if (arguments.length === 2) {console.log('two params')}... // 其他情况的处理逻辑}overload(1);//only one paramoverload(1, 2); //two params
如果觉得《js的函数重载》对你有帮助,请点赞、收藏,并留下你的观点哦!