交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • JS函数动态传递参数的方法分析【基于arguments对象】

    本文实例讲述了JS函数动态传递参数的方法。分享给大家供大家参考,具体如下:

    js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参。

    function box() {
     return arguments[0]+' | '+arguments[1]; //得到每次参数的值
    }
    alert(box(1,2,3,4,5,6)); //传递参数
    
    

    arguments对象的length属性可以得到参数的数量。

    function box() {
     return arguments.length; //得到6
    }
    alert(box(1,2,3,4,5,6));
    
    

    我们可以利用length这个属性,来智能的判断有多少参数,然后把参数进行合理的应用。比如,要实现一个加法运算,将所有传进来的数字累加,而数字的个数又不确定。

    function box() {
     var sum = 0;
     if (arguments.length == 0) return sum; //如果没有参数,退出
     for(var i = 0;i < arguments.length; i++) { //如果有,就累加
      sum = sum + arguments[i];
     }
     return sum; //返回累加结果
    }
    alert(box(5,9,12));
    
    

    例子:

    function loading() {
      var a="";
      for (var index in arguments) {
       a+=arguments[index]+"\n";
      }
      alert(a);
    }
    loading("xxx","yyyy","ccc");
    
    

    完整Demo示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>www.kunjuke.com arguments动态获取传参个数</title>
    </head>
    <body>
    <script>
     function box(){
      sum=0;
      for(i=0;i<arguments.length;i++){
       sum+=arguments[i];
      }
      return sum;
     }
     console.log(box(1,3,3,5,6))
    </script>
    </body>
    </html>
    
    

    运行结果:

    感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.kunjuke.com/code/HtmlJsRun测试上述代码运行效果。

    更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

    希望本文所述对大家JavaScript程序设计有所帮助。

    您可能感兴趣的文章:

    • 详解javascript立即执行函数表达式IIFE
    • 详解JavaScript的闭包、IIFE、apply、函数与对象
    • Python如何调用JS文件中的函数
    • JS 自执行函数原理及用法
    • 深入学习js函数的隐式参数 arguments 和 this
    • JS中超越现实的匿名函数用法实例分析
    • JS定义函数的几种常用方法小结
    • JavaScript函数IIFE使用详解

    广而告之:
    热门推荐:
    Javascript & DHTML上传文件控件第1/4页

    上章基本上把要交代的基本知识都说了一些,今天终于开始写代码了:D 首先来做一个实例,批量上传的UI控件。以后一般做的示例也是以UI控件为主的。都是封装成Object或者用Function封装成"Class"类。 也许对于单单看前几章的朋友来说这个例子过于深奥了,但是不用担心,一···

    js获取页面及个元素高度、宽度的代码

    网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offsetWidth (包括边线和滚动条的宽); 网页可见区域高: document.body.offsetHeight (包括边线的宽); 网页正文全文宽: document.body.scroll···

    关于php curl获取301或302转向的网址问题的解决方法

    在使用php的curl获取远程文件,代码如下: 复制代码 代码如下: <? $ghurl = isset($_GET['id']) ? $_GET['id']:'http://www.baidu.com/'; // php 获取 function getContents($url){ $header = array("Referer: http://www.baidu.com/"); $ch = curl_init(); curl_seto···

    react-native DatePicker日期选择组件的实现代码

    本教程的实现效果如下: 为了实现其淡入/淡出的覆盖效果, 还有取消按钮, 在此用了一个三方的组件, 大家可以先安装一下: 三方组件的地址:https://github.com/eyaleizenberg/react-native-custom-action-sheet (可以看看,也可以直接按我的步骤走) 1. 在terminal的该工程目录下···

    html超链接样式(四种不同状态)设置示例

    复制代码代码如下: <style type="text/css"> <!-- 超链接文本字体设置--> A { FONT-SIZE: 16px; FONT-FAMILY: 宋体 } <!-- 超链接正在连接的文本字体设置--> A:link { COLOR: #0055bb; TEXT-DECORATION: none } <!-- 超链接访问过的文本字体设置--> A:···

    ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解

    本文实例讲述了ThinkPHP框架整合微信支付之Native 扫码支付模式二。分享给大家供大家参考,具体如下: 大家好,这篇文章是继微信支付之Native 扫码支付 模式一之后的微信支付系列教程第三篇:扫码支付之模式二 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模···

    织梦中内容页分页数目太多时自动隐藏教程

    在dede程序的文章或图集模型,内容页分页过多,假如分页80页,那么dede默认的内容分页标签{dede:pagebreak/}会把所有的分页都显示出来,这样会撑破网页模板,即使使用css控制可以解决这个撑破模板问题,用overflow:hidden就可以了, 但是这样话叫访问者如何浏览···

    第一次记录Bootstrap table学习笔记(1)

    第一次使用Bootstrap-table这个表格插件,记录一下使用过程中遇到的问题。 |引入CSS文件 <link rel="stylesheet" href="bootstrap.min.css"> <link rel="stylesheet" href="bootstrap-table.css"> |引入相关库 我们需要引入Jquery库、bootstrap库、以及bootstr···

    基于MUI框架使用HTML5实现的二维码扫描功能

    Barcode的一个实现案例 一、简介         Barcode模块管理条码扫描,提供常见的条码(二维码及一维码)的扫描识别功能,可调用设备的摄像头对条码图片扫描进行数据输入。通过plus.barcode可获取条码码管理对象。 二、实现的效果 三、实现···

    PyTorch的自适应池化Adaptive Pooling实例

    简介 自适应池化Adaptive Pooling是PyTorch含有的一种池化层,在PyTorch的中有六种形式: 自适应最大池化Adaptive Max Pooling: torch.nn.AdaptiveMaxPool1d(output_size) torch.nn.AdaptiveMaxPool2d(output_size) torch.nn.AdaptiveMaxPool3d(output_size) 自适应平均池化Ad···