方法的重载
在Java中,同一个函数名,但是参数个数不一样,视为是两个函数。
也就是说,Java中能够定义两个同名的两个function,都是sum函数,java中是允许这么做的,因为参数个数不一样,这种现象叫做重载
function sum(a,b){
}
function sum(a,b,c){
}
JavaScript没有重载的概念
function fun(a, b) {
alert('ab');
}
function fun(a, b, c) {
alert('abc)
}
fun();
在JavaScript中, 只要是同名函数后面写的会覆盖前面写的;
arguments
JavaScript有一个非常强大的东西,就是每一个函数内部,都可以使用一个arguments这个类数组对象
这个arguments对象,就涵盖了所有实参
fun(45,436,457,34,23,12);
arguments[0] // 45
arguments[1] // 436
……
arguments[5] //12
- 如果函数里面有形式参数列表,那么是和arguments同步的
function fun(a,b){
arguments[0] = 8; //改变了第一个参数的值
alert(a); //8 ,弹出改变后的值
}
fun(45,436,457,34,23,12);
- arguments的功能,是模拟函数的重载,使得同一个函数,根据参数个数的不同,有不同的作用
// 设计一个sum函数,如果传进来一个参数,就得到这个数字的加1;
// 如果是2个参数,那么返回两个数字的和
function sum(a,b){
//如果实际参数的长度是1,说白了,你只传进来一个参数
switch(arguments.length){
case 1:
return ++a;
break;
case 2:
return a + b;
break;
}
}
sum(10); // 11
sum(3, 4); // 7