数码资讯
js中的方法重载是如何实现的函数的参数问题
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
众所周知,在JS中无法直接实现方法重载,因为在js中,如果定义多个名称,但参数的数目不一样,只能调用最后一个方法,并覆盖其他方法。
但每个函数都有一个特殊的参数参数,可以用来执行该方法的重载。
例如:
复制代码代码如下所示:
添加函数(firstNumber,sencondnumber){
返回sencondnumber firstNumber +;
}
只有两个参数可以被处理。如果有多个参数,或没有参数,一个参数的条件不能处理。如果没有参数传递,sencondnumber firstNumber和不确定。如果一个参数传递,它相当于只sencondnumber分配firstNumber,这仍然是不确定的。相反,如果有两个以上的参数传递,它相当于firstNumber。sencondnumber分配。虽然有其他参数,但它被忽略了。如果你能得到其他参数,你可以自然地处理它。在这一点上,我们应该考虑函数的特殊参数参数,它包含传递给函数的所有参数,并用它来实现方法重载的效果。
上述方法修改如下:
复制代码代码如下所示:
添加函数(firstNumber,sencondnumber){
如果(arguments.length = = 0) / /不传递参数
{
返回null;
}
如果(arguments.length = 1){ / /传递一个参数
返回firstNumber; / /也可以写为返回参数{ 0 };
}
如果(arguments.length = = 2) / /通过两参数
{
返回firstNumber + sencondnumber; / /也可以写为返回参数{ 0 } +论点{ 1 };
}
{其他
var总= 0;
对于(var i = 0;i < arguments.length;i++){
总=总数+参数{ }
}
总收益;
}
}
当然,这种方法的缺点是不能打乱参数的阶数。如果函数实现依赖于参数的顺序,则必须进行特殊处理,例如通过null占据位置。
传递给函数的参数严格按照函数序列的定义分配每个参数,如果只想给第二个赋值,则必须传递两个参数,或者实际传递给第一个参数的值,并分配给第二个参数。
例如,只是想给sencondnumber值,但不想给firstNumber值,必须添加(null,2)(当然,里面的功能必须处理转让的情况下的特殊价值),如果这样的称呼加(2),但对firstNumber值,一个叫参数的等效通情况。
但每个函数都有一个特殊的参数参数,可以用来执行该方法的重载。
例如:
复制代码代码如下所示:
添加函数(firstNumber,sencondnumber){
返回sencondnumber firstNumber +;
}
只有两个参数可以被处理。如果有多个参数,或没有参数,一个参数的条件不能处理。如果没有参数传递,sencondnumber firstNumber和不确定。如果一个参数传递,它相当于只sencondnumber分配firstNumber,这仍然是不确定的。相反,如果有两个以上的参数传递,它相当于firstNumber。sencondnumber分配。虽然有其他参数,但它被忽略了。如果你能得到其他参数,你可以自然地处理它。在这一点上,我们应该考虑函数的特殊参数参数,它包含传递给函数的所有参数,并用它来实现方法重载的效果。
上述方法修改如下:
复制代码代码如下所示:
添加函数(firstNumber,sencondnumber){
如果(arguments.length = = 0) / /不传递参数
{
返回null;
}
如果(arguments.length = 1){ / /传递一个参数
返回firstNumber; / /也可以写为返回参数{ 0 };
}
如果(arguments.length = = 2) / /通过两参数
{
返回firstNumber + sencondnumber; / /也可以写为返回参数{ 0 } +论点{ 1 };
}
{其他
var总= 0;
对于(var i = 0;i < arguments.length;i++){
总=总数+参数{ }
}
总收益;
}
}
当然,这种方法的缺点是不能打乱参数的阶数。如果函数实现依赖于参数的顺序,则必须进行特殊处理,例如通过null占据位置。
传递给函数的参数严格按照函数序列的定义分配每个参数,如果只想给第二个赋值,则必须传递两个参数,或者实际传递给第一个参数的值,并分配给第二个参数。
例如,只是想给sencondnumber值,但不想给firstNumber值,必须添加(null,2)(当然,里面的功能必须处理转让的情况下的特殊价值),如果这样的称呼加(2),但对firstNumber值,一个叫参数的等效通情况。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。