龙空技术网

js中的函数重载

未来的树 166

前言:

今天姐妹们对“js中的重载”大概比较关怀,各位老铁们都想要知道一些“js中的重载”的相关资讯。那么小编也在网摘上搜集了一些有关“js中的重载””的相关文章,希望看官们能喜欢,姐妹们快快来学习一下吧!

什么是函数重载

重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同。

与之相似的函数重写

函数重写,也被称为覆盖,是指子类重新定义父类中有相同名称和参数的虚函数,主要在继承关系中出现。

函数重载基本条件函数名必须相同;函数参数必须不相同,可以是参数类型或者参数个数不同;函数返回值可以相同,也可以不相同。(如果函数的名称和参数完全相同,仅仅是返回值类型不同,是无法进行函数重载的。)函数重载应用场景

同一场景下,对于函数功能相同,仅仅参数不同的情况下进行重载,可减少开发的重复命名等情况

javascript 中的函数重载

javascript 中没有真正意义上的函数重载,因为 javascript 中同一作用域下的同名函数,前者会被后者覆盖,但是可通过其他方法间接实现重载同样的效果,javascript中的函数没有签名,它的参数是由包含零的多个数组来表示的。无函数签名的话重载是不可能做到的

但是我们可以简介方法实现重载效果,使用 arguments 对象,是函数内部的一个类数组对象,它里面保存着调用函数时,传递给函数的所有参数。 简单的讲就是使用逻辑判断,根据参数所在数组的长度来执行不同的代码

function foo(){ if(arguments.length === "条件1"){ "函数1" } if(arguments.length === "条件2"){ "函数2" }}

重载的本质就是将多个功能相近的函数合并为同一个函数

标签: #js中的重载 #js函数重载是什么 #js重载和重写 #函数重载js #函数重载的原则