function course(name,age){ console.log(age); //undefined 此时age并无实参,所以为undefined console.log(arguments[1]); //undefined arguments指示的age,因为下标是以0开始的 arguments[1] = 2; console.log(age); //underfined console.log(arguments[1]); //2 } course(‘麋斯‘);
分析 :
形参的的空间与arguments对象的内存空间并不重叠。
如果形参和arguments都存在,则两者的值是同步的;
如果形参和arguments当中,有其中之一无值,则此值不会得到同步.
关于arguments对象 :
作用 :
检测参数个数 --- 引用属性 arguments.length 即可
模拟函数重载 --- 一个单独的功能实现多项任务,严格模式下,不能工作
JavaScript中不存在重载,只能说是 模拟重载
因此我们来模拟重载 :
function sum(a,b){ switch(arguments.length){ case 2: return arguments[0]+arguments[1];break; case 3: return arguments[0]+arguments[1]+arguments[2];break; case 4: return arguments[0]+arguments[1]+arguments[2]+arguments[3];break; default: return 0; } } console.log(sum(1,2)); //3 console.log(sum(1,2,3)); //6 console.log(sum(1,2,3,4)); //10
原文地址:https://www.cnblogs.com/asd7850254/p/12272775.html
时间: 2024-10-01 21:44:57