Javascript参数个数可变的函数 动态传人和取得参数

页面导航:首页 > 网络编程 > JavaScript > Javascript参数个数可变的函数 动态传人和取得参数

Javascript参数个数可变的函数 动态传人和取得参数

来源: 作者: 时间:2016-02-20 09:49 【

js中的函数是一个对象,一个Function对象(函数参数列表及函数主体事实上只是Function对象的构造函数的参数而已),跟其他对象一 样可以在运行时增加属性、删除属性,函数参数是可变

js中的函数是一个对象,一个Function对象(函数参数列表及函数主体事实上只是Function对象的构造函数的参数而已),跟其他对象一 样可以在运行时增加属性、删除属性,函数参数是可变的,比如定义函数时定义的参数列表只有3个参数,调用时你却可以只传2个参数,或超过3个参数,通过函 数对象的length属性可以得到函数定义的形参个数,而函数调用时的实际参数列表则可以通过函数的arguments属性(一个Arguments对 象,类似于数组)访问到,arguments.length就是实际参数的个数。

参数个数可变的函数,arguments的用法; 可以500%提高开发效率的前端UI框架!

动态函数:

.代码 收藏代码
  1. var square=new Function("x","y","var sum;sum=x*x+y*y;return sum;")alert(square(2,3));

    动态函数的作用:函数体是由一个字符串构成的。

    .代码 收藏代码
    1. function ArgTest(a, b){
    2. var i, s = "The ArgTest function expected ";
    3. var numargs = arguments.length; // 获取被传递参数的数值。
    4. var expargs = ArgTest.length; // 获取期望参数的数值。
    5. if (expargs < 2)
    6. s += expargs + " argument. ";
    7. else
    8. s += expargs + " arguments. ";
    9. if (numargs < 2)
    10. s += numargs + " was passed.";
    11. else
    12. s += numargs + " were passed.";
    13. s += "/n/n"
    14. for (i =0 ; i < numargs; i++){ // 获取参数内容。
    15. s += " Arg " + i + " = " + arguments[i] + "/n";
    16. }
    17. return(s); // 返回参数列表。
    18. }


      ------------------

      自己实现的代码可以500%提高开发效率的前端UI框架!

      ------------------

      .代码 收藏代码
      1. function addrow(responseText)
      2. {
      3. //alert(responseText);
      4. var jsontemp = eval('(' + responseText + ')');
      5. var length = jsontemp.root.length;
      6. var type = "";
      7. var id = "";
      8. var date = "";
      9. var sucOrf = "";
      10. if(length>0)
      11. {
      12. for(var i = 0; i {
      13. type = jsontemp.root[i].type;
      14. id = jsontemp.root[i].id;
      15. date = jsontemp.root[i].date;
      16. sucOrf = jsontemp.root[i].sucOrf;
      17. addDivArgs(type,render(renderType,type),id,"",date,"",sucOrf,render(renderSucOrf,sucOrf));
      18. //addDiv(type,id,date,sucOrf);
      19. }
      20. }
      21. else
      22. {
      23. return;
      24. }
      25. backcount = backcount+length;
      26. if(backcount>=2000)//当记录大于xxx条时重新加载页面
      27. {
      28. window.location.reload();
      29. //window.location.href="addrow.";
      30. return;
      31. }
      32. container.scrollTop = container.scrollHeight;
      33. }
      34. function render(renderFunction,value)
      35. {
      36. return renderFunction(value);
      37. }
      38. function renderSucOrf(value)
      39. {
      40. if(value=="成功")
      41. {
      42. return "div3 success";
      43. }
      44. else
      45. {
      46. return "div3 false";
      47. }
      48. }
      49. function renderType(value)
      50. {
      51. if(value=="委托")
      52. {
      53. return "div0 success";
      54. }
      55. else
      56. {
      57. return "div0 false";
      58. }
      59. }


        //插入div
        //传入可变参数的函数 可以500%提高开发效率的前端UI框架!

        .代码 收藏代码
        1. var numargs = 0;
        2. var tmpDiv = null;
        3. var defaultClass = new Array("div0","div1","div2","div3");//默认样式数组



          //动态传入列的值和渲染方法处理后返回的样式,样式为空采用默认的样式

          .代码 收藏代码
          1. function addDivArgs(value,render)
          2. {
          3. numargs = arguments.length; // 获取被传递参数的数值
          4. tmpDiv = document.createElement("div");
          5. tmpDiv.className = "divline";
          6. for(var i = 0; i < numargs; i+=2)//每列传入两个参数
          7. {
          8. tempDivId = document.createElement("div");
          9. if(arguments[i+1]=="")//每列的第二个参数为空
          10. {
          11. tempDivId.className = defaultClass[i*(1/2)];
          12. }
          13. else
          14. {
          15. tempDivId.className = arguments[i+1];
          16. }
          17. tmpDiv.appendChild(tempDivId);
          18. tempText = document.createTextNode(arguments[i]);
          19. tempDivId.appendChild(tempText);
          20. }
          21. container.appendChild(tmpDiv);
          22. }
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<