`
agevs
  • 浏览: 70293 次
  • 来自: 北京
博客专栏
924aba1e-229a-352e-b6d4-f15f3159a438
各种Web前端技巧经验分享...
浏览量:0
文章分类
社区版块
存档分类
最新评论

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

 


//插入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.       
  7.    for(var i = 0; i < numargs; i+=2)//每列传入两个参数  
  8.    {  
  9.     tempDivId = document.createElement("div");  
  10.           
  11.    if(arguments[i+1]=="")//每列的第二个参数为空  
  12.     {  
  13.      tempDivId.className = defaultClass[i*(1/2)];  
  14.     }  
  15.     else  
  16.     {  
  17.      tempDivId.className = arguments[i+1];  
  18.     }  
  19.        
  20.     tmpDiv.appendChild(tempDivId);  
  21.        
  22.     tempText = document.createTextNode(arguments[i]);  
  23.     tempDivId.appendChild(tempText);     
  24.    }  
  25.    container.appendChild(tmpDiv);  
  26. }  
0
0
分享到:
评论

相关推荐

    javascript实现根据函数名称字符串动态执行函数的方法示例

    以上就是在JavaScript中实现函数动态调用的几种常见方法,每种方法都有其适用的场景。需要注意的是,使用eval()函数虽然方便,但会带来安全风险和性能问题,因为它会执行任意的JavaScript代码。因此,在安全性要求较...

    javascript指南和函数式编程

    本指南将深入探讨JavaScript的高效编程和函数式编程这两个重要主题,帮助开发者提升技能,实现更优雅、更可维护的代码。 《Effective JavaScript(中文版).pdf》这本书是JavaScript编程的经典之作,它包含了68个具体...

    qt 调用javascript函数 带参数

    本篇文章将深入探讨如何在Qt中调用JavaScript函数并传递参数,以实现更丰富的功能。 首先,Qt的Webkit模块是实现这一目标的关键。Qt Webkit是一个基于WebKit引擎的组件,它允许Qt应用渲染网页内容,并与网页进行...

    javascript函数式编程

    通过深入理解并实践这些函数式编程原则和技巧,开发者可以编写出更简洁、可维护、易于测试的JavaScript代码。对于已经熟悉Java的开发者来说,学习JavaScript函数式编程不仅可以拓宽视野,也有助于提升在前端开发领域...

    javascript函数速查

    ES6引入了剩余参数(...rest)和解构赋值,使处理不定数量的参数变得容易。剩余参数将多个参数打包成数组,例如: ```javascript function sum(...numbers) { return numbers.reduce((total, num) =&gt; total + num, ...

    javaScript获取浏览器参数

    ### JavaScript 获取浏览器参数知识点详解 在Web开发过程中,经常需要从URL中提取查询字符串中的参数。这些参数可以用于用户身份验证、页面个性化等用途。本文将详细介绍如何利用JavaScript来实现这一功能。 #### ...

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    JavaScript ES6函数式编程入门经典_javascript_

    8. **函数柯里化**:柯里化是将接受多个参数的函数转换为接受一个参数(通常是部分参数)的函数的过程,每次调用只处理一个参数,并返回一个新的函数等待处理下一个参数。这有助于提高代码复用性。 9. **Promise**...

    javascript变量和函数

    基本数据类型是不可变的,而引用数据类型(如对象和函数)是可变的,它们存储的是对象的引用而非实际值。这意味着修改引用类型变量的一个属性会影响到所有引用该对象的变量。 基本数据类型包括: - Number:表示...

    javascript 函数教程(由浅入深)

    在JavaScript中,函数是一段可执行的代码块,它能够接收参数,执行特定任务,并可能返回结果。以下是关于JavaScript函数的详细讲解: 1. **函数定义**: - 无参函数定义:`function 函数名 () { 代码... }` - 有...

    JavaScript中常用的函数类型.pdf

    本文将详细探讨JavaScript中常用的三种函数类型:可变函数、匿名函数和动态函数。 1、可变函数 在JavaScript中,函数可以接受不同数量的参数,即使它们在定义时没有指定。例如: ```javascript function show() {...

    JavaScript程序设计课件:函数的参数.pptx

    JavaScript程序设计 函数的参数 5.2.3 函数的参数 概念 函数的参数是函数与外界交换数据的接口。外部的数据通过参数传入函数内部进行处理,同时函数内部的数据也可以通过参数传到外界。 函数定义时圆括号里的参数...

    JavaScript的系统函数学习

    根据给定文件的信息,我们可以总结出关于JavaScript中的几个重要系统函数的知识点,这些知识点主要集中在URI编码解码、数字解析以及数值判断上。 ### 1. URI 编码与解码 #### 1.1 `encodeURI()` - **功能**:`...

    JavaScript函数式编程pdf

    在JavaScript中,避免修改外部状态是实现纯函数的关键,这有助于代码的可预测性和测试性。 4.柯里化(Currying):这是一种将接受多个参数的函数转化为接受单一参数并返回新函数的技术。通过柯里化,可以创建更灵活的...

    JavaScript实用小函数(一)

    1. **函数**: 在JavaScript中,函数是可重复使用的代码块,可以接收参数并返回值。它们是第一类对象,这意味着函数可以作为变量赋值、作为参数传递给其他函数,甚至作为其他函数的返回值。例如,创建一个简单的函数...

    向setTimeout传递函数参数

    在JavaScript编程中,`setTimeout`是一个非常常用的函数,它用于在指定的时间(以毫秒为单位)后调用一个函数或者执行某段代码。这个功能对于实现延迟执行、动画效果或者定时任务等场景非常关键。在本文中,我们将...

    JavaScript函数的调用以及参数传递

    JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同方式在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 Note 注意 this 是保留关键字,你不能...

    使一个函数作为另外一个函数的参数来运行的javascript代码

    通过将一个函数作为另一个函数的参数来运行,不仅能够提高代码的复用性和灵活性,还能让程序变得更加模块化和易于维护。理解这一概念对于掌握JavaScript的高级特性至关重要。希望本文对你有所帮助!

    用函数式编程技术编写优美的 JavaScript

    JavaScript中的`Array.prototype.map`就是一个典型的高阶函数例子,它接受一个函数作为参数,对数组中的每个元素应用该函数,并返回一个新的数组。 - **柯里化(Currying)**:这是一种将多参数函数转换为嵌套的单参数...

Global site tag (gtag.js) - Google Analytics