js函数(2)“重载”(js中没有重载,这里是模拟重载)
一、函数的重载
当函数名相同,不同形参列表的多个函数,在调用的的时候,会根据传入参数个数的不同选择调用相应的函数,这样做可以减少函数的数量。
js默认不支持重载语法,因为js不允许多个同名函数的存在,如果存在同名函数,在运行程序的时候,js的声明提前机制会将最后一个函数覆盖掉前面的所有函数,js虽然不支持重载,但是js的函数自带一个arguments对象,实现重载的功能,arguments对象不需要人为创建。arguments是一个类数组对象,但是不是真正的数组,和数组的API不通用,只要不确定传来的参数的个数的时候,就不用定义形参列表,用arguments存所有传入参数的值。举例见下面,
function add(){//根据传入参数的不同,都达到累加的效果 var sum=0; for(var i=0;i<arguments.length;i++){ sum+=arguments[i]; } console.log(sum); } add(1);//1 add(1,2);//3 add(1,2,3);//6