码迷,mamicode.com
首页 > Web开发 > 详细

js函数形参与arguments的关系

时间:2020-02-07 14:34:54      阅读:88      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!