zoukankan      html  css  js  c++  java
  • 通过arguments对象实现动态参数

    <script type="text/javascript">
    		function sum()
    		{
    			var n = 0;
    			for(var i = 0; i < arguments.length; i++)
    			{
    				n += arguments[i];
    			}
    			return n;
    		}
    
    		alert(sum(1,2,3));//6
    		alert(sum(-1,2));//1
    </script>

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

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

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

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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));

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    function loading() {
      var a="";
      for (var index in arguments) {
       a+=arguments[index]+"\n";
      }
      alert(a);
    }
    loading("xxx","yyyy","ccc");

    完整Demo示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>www.jb51.net 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>

    运行结果:

  • 相关阅读:
    CSS BEM 命名规范简介
    React 端的编程范式
    在React应用程序中用RegEx测试密码强度
    React 中获取数据的 3 种方法及它们的优缺点
    vue props传值常见问题
    如何理解vue中的v-model?
    利用jQuery not()方法选取除某个元素外的所有元素
    初识Nest.js
    react-绑定this并传参的三种方式
    Angular怎么防御xss攻击?
  • 原文地址:https://www.cnblogs.com/zhilu/p/13811752.html
Copyright © 2011-2022 走看看