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

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<length; i++)
  13. {
  14. type = jsontemp.root[i].type;
  15. id = jsontemp.root[i].id;
  16. date = jsontemp.root[i].date;
  17. sucOrf = jsontemp.root[i].sucOrf;
  18. addDivArgs(type,render(renderType,type),id,"",date,"",sucOrf,render(renderSucOrf,sucOrf));
  19. //addDiv(type,id,date,sucOrf);
  20. }
  21. }
  22. else
  23. {
  24. return;
  25. }
  26. backcount = backcount+length;
  27. if(backcount>=2000)//当记录大于xxx条时重新加载页面
  28. {
  29. window.location.reload();
  30. //window.location.href="addrow.html";
  31. return;
  32. }
  33. container.scrollTop = container.scrollHeight;
  34. }
  35. function render(renderFunction,value)
  36. {
  37. return renderFunction(value);
  38. }
  39. function renderSucOrf(value)
  40. {
  41. if(value=="成功")
  42. {
  43. return "div3 success";
  44. }
  45. else
  46. {
  47. return "div3 false";
  48. }
  49. }
  50. function renderType(value)
  51. {
  52. if(value=="委托")
  53. {
  54. return "div0 success";
  55. }
  56. else
  57. {
  58. return "div0 false";
  59. }
  60. }

//插入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. }
时间: 2024-12-28 15:02:36

Javascript参数个数可变的函数 动态传人和取得参数的相关文章

JavaScript参数个数可变的函数

题外话:很早就接触了JavaScript,但是没有留意它,看到很多很酷.很炫的网页,都有JavaScript的身影,Google在JavaScript的应用对我的影响最大了.我决心从头开始学习它,所以有了JavaScript & Ajax这个分栏.我打算把这个分栏作为学习笔记记录下来,因此每篇文章笔记可能很简短,一两句话注解而已. JavaScript允许一个函数传递个数可变的参数,因为有arguments这个内置对象,它一个函数传递的所有参数的数组.举个例子,就明白了. 可以精心开发5年的UI

C中参数个数可变的函数

一.什么是可变参数 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点"-"做参数占位符),实际调用时可以有以下的形式: printf("%d",i); printf("%s",s); printf("the number is %d ,s

参数个数可变的函数

使用va_start(),va_arg(),va_end(),操作了可变元 定义如下: #include<stdarg.h> type va_arg(va_list argptr,type); void va_start(va_list argptr,last_parm); void va_end(va_list argptr); 用法: 1 #include<stdio.h> 2 #include<stdarg.h> 3 4 double sum_series(int

在C/Objc中 写一个参数个数可变的函数示例

////  main.c//  UncertainParametersAndParameterSentinel////  Created by llc on 15/2/12.//  Copyright (c) 2015年 llc. All rights reserved.// #include <stdio.h>#include <stdarg.h> int addemUp(int firstNum,...);void printStrings(char * first,...)

【转载】C语言 构建参数个数不固定函数

深入浅出可变参数函数的使用技巧本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施. VA函数(variable argument function),参数个数可变函数,又称可变参数函数.C/C++编程中,系统提供给编程人员的va函数很少.*printf()/*scanf()系列函数,用于输入输出时格式化字符串:exec*()系列函数,用于在程序中执行外部文件(main(int argc,char*argv[]算不算呢,与其说main

怎样写参数个数可变的宏 Debug宏 Log宏等

编译器内置宏: 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息. ANSI C标准中有几个标准预定义宏(也是常用的): __LINE__:在源代码中插入当前源代码行号: __FILE__:在源文件中插入当前源文件名: __DATE__:在源文件中插入当前的编译日期 __TIME__:在源文件中插入当前编译时间: __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1: __cplusplus:当编写C

JavaScript新手的第一堂函数课:定义与参数(文末福利)

关注微信公众号[异步图书]每周送书 本文包括以下内容: 理解函数为何如此重要 函数为何是第一类对象 定义函数的方式 参数赋值之谜 在本文这一部分讨论JavaScript基础时,也许你会感到惊讶,我们的第一个论点是函数(function)而非对象(object).当然,第3部分会用大量笔墨解释对象,但归根结底,你要理解一些基本事实,像普通人一样编写代码和像"忍者"一样编写代码的最大差别在于是否把JavaScript作为函数式语言(functional language)来理解.对这一点的

C++省略号类型和参数个数不确定函数参数范例

声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/44203651 今天想写个宏定义,发现宏定义里也可以写不定参数,但是我的宏最终没有用. 因为我觉得写完,这个不定参数给我带来的麻烦,比好处好想多. 因此我就定义了两个宏,用一个宏定义另一个. 把今天这个c++的类型不确定和参数个数不确定的用法先记下来.以备后用啊. 直接代码: #include<cstdarg> // 必备头文件 #include<ios

再学Java 之 形参个数可变函数

自Java 5后,Java允许定义形参个数可变的方法,从而允许运行过程中,为方法指定不确定个数的形参. 其定义方法的格式如下: void function_name ( type ... variables){ //对variables数组进行操作 } 在上面格式中,系统将输入的参数全部存储到variables数组中.也就是说,下面的定义方式,其实是相同的: void function_name ( type ... variables); void function_name ( type[]