javascript没有函数重载说明
首先描述一下重载的定义:同名不同参数的函数之间相互称之为重载。
也就是在程序中有命名一样的函数,通过参数的判断实现相同函数的不同调用。
而 javascript 不能实现函数重载,因为命名一样的函数,后面的会把前面的覆盖掉。
js定义函数是以函数名为标识,根据定义的参数顺序和传入的参数进行匹配,多余的舍去,不够的当成undefined处理。
但是js也有自己的方法实现重载,就是方法重载,通过判断参数的个数,在函数内部实现方法重载。
举个例子,函数接收一个参数的情况下,返回当前参数 ,如果两个就返回两个参数相加的和,如果是三个就返回三个函数相加的和,以此类推...
function add(){ if(arguments.length === 1){ return arguments[0] } else { var _index = arguments.length; var allnum = 0; for (var i = 0;i<_index;i++){ allnum = allnum + arguments[i]; } return allnum } return arguments.length } add(1,1,2,3,3,3,4);
我来说两句