js函数形参与arguments的关系

2021-04-19 04:26

阅读:565

标签:console   break   参与   指示   function   text   case   形参   lin   

 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

 

 

    

js函数形参与arguments的关系

标签:console   break   参与   指示   function   text   case   形参   lin   

原文地址:https://www.cnblogs.com/asd7850254/p/12272775.html


评论


亲,登录后才可以留言!