<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>重载</title>
</head>
<body>
<pre>
什么是重载?
相同函数名,不同参数列表的多个函数 在调用时,可以根据传入的参数的不同,自动选择对应的函数调用!
一个函数名,执行过个操作
when 一个任务,根据不同的参数,执行不同的操作流程
</pre>
<script>
function pay( ){
// arguments[ ]
console.log(typeof(arguments));
// 如果参数个数为0
if(arguments.length == 0)
console.log('扫码支付')
// 如果参数个数为1
else if(arguments.length == 1)
console.log("现金支付" + arguments[0]);
// 否则参数个数为2
else if(arguments.length == 2)
console.log('刷卡支付,卡号:'+arguments[0]);
}
pay();//扫码支付
pay(100);//现金支付
pay("1111268686","123456");//刷卡支付
// 问题:js语法不支持重载效果,不允许多个重名函数存在(存在也会被最后的覆盖)
// 解决:arguments 对象 所有函数对象内,都自动创建了一个arguments对象
// arguments对象:专门保存传入函数的所有参数值得类数组对象
// 类数组对象(object like array)
// 和数组的相同之处: 下标 length属性 for遍历
// 不同: 类数组对象是Object,不是Array,无法使用Array的API
// 数组是Array类型,可以使用自己的API
//计算参数的总和
function sum(){
var sum=0;
// 判断arguments是否有参数
if(arguments.length>0){
// 将参数累加
for(var i =0;i<arguments.length;i++){
sum += arguments[i];
}
}
return sum;
}
console.log(
sum(),
sum(10,20,30),
sum(20,90),
sum(1,2,3,5,6,8)
)
</script>
</body>
</html>
js中有关重载函数arguments
最新推荐文章于 2022-02-19 12:03:35 发布