分享

[学习笔记]JS function的参数问题

 狼图腾1224 2017-09-10

1.当传入的参数个数小于声明的参数个数时,缺少的参数值就是:undefined

  1. function ReciveParam(/*第一个参数*/a,/*第二个参数*/b)
  2. {
  3.     alert("a:"+a);// display:a:第一个参数
  4.    alert("b:"+b); // display:b:undefined
  5. }
  6. function GiveParam()
  7. {
  8.   ReciveParam("第一个参数");
  9. }
复制代码

2..函数中可以通过arguments对象来获取函数的全部参数

  1. function show()
  2. {
  3.     var largest=Max(10,20,30,1,10000,88,56,123);
  4.      alert(largest);//display:10000
  5. }
  6. function Max(m)
  7. {
  8.    var re=0;
  9.    for(var i=0;i<arguments.length;i++)
  10.    {
  11.       if(arguments>re)
  12.       {
  13.          re=arguments;
  14.        }
  15.    }
  16. return re;
  17. }
复制代码

Arguments对象是一个类似于数组的对象,可以按照参数的数目而不是名称来获取全部参数,并且arguments也具有length属性,可以用来获取获取实际参数的个数.

arguments虽然具有一些数组的特性,但是他不是数组.实际上arguments[]是和实际参数是引用同一变量的两种方法:

  1. function ChangeParamValue()
  2. {
  3.    ChangParamValueDo("第一个参数","第二个参数");
  4. }
  5. function ChangParamValueDo(a,b)
  6. {
  7.     alert("改变前:a:"+a+",b:"+b);// display:改变前:a:第一个参数,b:第二个参数
  8.    arguments[0]="arguments0";
  9.     arguments[1]="arguments1";
  10.    alert("用arguments改变后:a:"+a+",b:"+b); // display:用arguments改变后:a:arguments0,b:arguments0
  11. }
  12. arguments有一个callee属性,用没过来引用当前正在执行的函数
  13. function f(x)
  14. {
  15.       if(x<=1) return x;
  16.       return x*arguments.callee(x-1);
  17. }
复制代码


3。把对象属性用作参数:这样可以不必去记参数的顺序,用对象的属性名来传参

  1. function ArrayCopy(name,age,grade,sex,height,weiht)
  2. {
  3.    alert("name:"+name+" age:"+age+" grade:"+grade+" sex:"+sex+" height:"+height+" weiht:"+weiht);
  4. }
  5. function EasyCopy(args)
  6. {
  7.     ArrayCopy(args.name||"",
  8.     args.age||0,
  9.     args.grade||"one",
  10.     args.sex||"可选",
  11.     args.height||100,
  12.    args.weight||100 )
  13. }
  14. function show()
  15. {
  16.     EasyCopy({name:'lily',age:'13',grade:'three'});
  17.    EasyCopy({name:'mark',height:'180',weight:180});
  18. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多