javascript函数重载解决方案共享

JS函数定义的形式参数可以指定名字,或多或少我们会认为JS支持重载方法的参数的数目是不同的,但可惜的是,这只是一种错觉,JS的所有参数传递给参数,这个参数是相似的组数,当函数被称为所有参数保存在数据结构中,我们定义了一个函数的形式参数时,它是在一个快速访问定义的数据结构中指定。也就是说,JS的所有功能,支持无限的参数和数据类型是弱型。js的功能和它的名字真的不同吗

这种方法总是可用的,我们可以使用Javascript中的特殊对象参数来模拟函数重载,使用它来确定传入参数的数量或类型,以区分重载。

1。根据参数的数量重新加载

JS确定传入的参数个数可以由arguments.length属性判断;

复制代码代码如下所示:

函数添加(){
如果(arguments.length = = 1){
警报(参数{ 0 } + 10);
}
如果(arguments.length = = 2){
警报(参数{ 0 } +参数{ 1 });
}
}
函数调用
添加(10);
添加(10, 20);



2。根据参数类型重载

判断变量类型的3种方法:
1。使用类型声明来确定变量的类型,并返回一个类型声明的类型对应的字符串。
2。使用instanceof语句来确定变量的类型,和instanceof语句返回真或假。
三.使用构造函数属性判断变量的类型,该属性返回用于构造变量的构造函数引用。
比较表:可以看出,特定类型的类型不能准确的判断,因此我们使用构造函数来判断。





类型
字符串

对象
功能
布尔
对象
对象

构造函数
字符串

对象
功能
布尔
阵列
用户定义

复制代码代码如下所示:

函数添加()
{
如果(arguments.length = = 0)返回0;
var总和= 0;
对于(var i = 0;i < arguments.length;i++){
如果(参数{构造函数} =数字){
/ /或改为:如果(参数{我}是数)
/ /或改为:如果(typeof(参数{我})= =数)
总和=参数{ };
}
}
收起回复;
}
函数调用
警报(添加(10));
警报(添加(10,20));