zoukankan      html  css  js  c++  java
  • JavaScript arguments对象

    函数的参数
    -> length 属性
    在 js 中凡是定义了一个函数, 就是定义了一个对象.
    函数与一般的数据是一样的使用: 赋值, 可以调用.

    函数作为对象有一个属性 length 该属性用于描述在定义的时候函数的 参数个数

    -> arguments 对象
    所谓 arguments, 就是参数的复数形式. 也就是在调用函数的时候, 会给函数传入参数
    但是有时不确定需要传入多少参数, 所有在调用时传入的参数都会被 arguments 获取到.
    简单的说 arguments 中存储的就是参数的集合.

    在实际调用的时候 arguments 就是实际调用时传入的所有参数

    问题: 如何判断函数参数调用符合函数的定义?
    如何判断调用时的参数个数与函数定义时的参数个数一样?
    函数名.length === arguments.length

    使用 arguments 可以保证在函数定义不写参数的情况下, 也可以获得函数调用时传入的所有参数.
    因此在不确定函数有多少参数和需要函数有动态参数的时候使用.
    1> 比如, 求两个数组中较大的数字
    function max( a, b ) {
    return a > b ? a : b;
    }
    如果需要判断多个数字中较大的数字,代码如下:

        function max(){
            var args = arguments;
            var maxNum = args[0];
            for(var i=1;i<args.length;i++){
                if(maxNum<args[i]){
                    maxNum = args[i];
                }
            }
            return maxNum;
        }
        console.log(max(2,3,4,5,6,9))


    2> 希望函数有动态参数, 在传入不同参数的时候有不同的结果
    在 jq 中, css, attr, val, html, text, ...
    接下来实现一个 css 方法, 该方法提供两个参数, 一个是 dom 元素, 第二个是一个字符串
    用于解释获得什么样式属性值; 也可以带有三个参数, 第一个参数是 dom 元素, 第二个参数
    是字符串, 用于告知需要处理哪一个样式, 第三个参数就是对应的样式值.

    css( div, 'border' ) -> 获得 div 元素的 border 样式属性的值
    css( div, 'border', '1px solid red' ) 为元素 div 设置 border 的样式.

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id="dv"></div>
    </body>
    <script>
        function css () {
            var args = arguments;
            // 第 0 个元素是 DOM
            // 第 1 个元素是 对应的样式
            // 第 2 个元素是 需要设置的样式值
            if ( args.length == 3 ) {
                // 设置
                args[ 0 ].style[ args[ 1 ] ] = args[ 2 ]; 
            } else {
                // 获取
                return args[ 0 ].style[ args[ 1 ] ];
            }
        }
        var div = document.getElementById( 'dv' );
        css( div, 'border', '1px solid red' );
        css( div, 'width', '200px');
        css( div, 'height', '100px');
        console.log( css( div, 'width' ) );
    </script>
    </html>
  • 相关阅读:
    Delphi 2005 以上版本GIF动画播放设置
    WIN7中盾牌的编程-DELPHI
    Delphi中ComPort通信中的数据处理
    【ZJOI2008】树的统计(树链剖分)
    【CJOJ2440】大话西游(树链剖分)
    【洛谷3384】【模板】树链剖分
    【NOI2004】郁闷的出纳员(splay)
    【HNOI2004】宠物收养所(splay)
    【HNOI 2002 】营业额统计(splay)
    【Tyvj 1728】普通平衡树
  • 原文地址:https://www.cnblogs.com/joyce123/p/7271569.html
Copyright © 2011-2022 走看看