JS---arguments不定参

我们一般称使用arguments为可变参或不定参,采用arguments的函数其参数个数是可变的。

arguments本质是一个数组,数组内存储的内容就是我们传入的的参数

举个例子:

//写一个累加求和的函数
function sum(){
        var result=0;
        for(var i=0;i<arguments.length;i++){
            result+=arguments[i];
        }
        return result;
    }
    console.log(sum(2,3,4));//9
    console.log(sum(1,10,100,1000));//1111

接下来,我们再看一个css函数的例子。

  假设,它的形式为:css(oDiv,样式),其作用为获取样式值。

     它的形式为:css(oDiv,样式,样式值)其作用为设置样式。

  参数个数不同,实现的功能不同,那么我们可以利用arguments的长度来判断其功能。 

    function css(){
        if(arguments.length==2){// 获取样式值
            return arguments[0].style[arguments[1]];
        }else if(arguments.length==3){//设置样式值
            arguments[0].style[arguments[1]]=arguments[2];
        }
    }

但是这样的可读性又很差,实际上,我们依旧可以对不定参函数的参数进行命名,从而提高代码可读性:

  function css(obj,name,value){
        if(arguments.length==2){
            return obj.style[name];
        }else if(arguments.length==3){
            obj.style[name]=value;
        }
    }

原文地址:https://www.cnblogs.com/qyuan/p/9767193.html

时间: 2024-11-10 14:40:59

JS---arguments不定参的相关文章

js(arguments不定参)

<script>function sum(){ var result=0; for(var i=0;i<arguments.length;i++) { result+=arguments[i]; } return result; } alert(sum(1,2,3,4));

php和js的不定参

function my_func() { $args = func_get_args(); print_r($args); } my_func('php','java','node.js'); javascrip的参数只是个形式,不一定说你归定几个参数就只能传几个参数, 在函数的内部可以用 arguments 对象来访问实际传入的参数 arguments对象相当于一个数组,比如说一个函数: function Fun(){ var args = arguments; if (args &&

js SetTimeout传参问题

今天写代码遇到这样一个问题,先上代码 1 <!--JS方法--> 2 function textout(obj){ 3 if(opac==60){opac=0;return;}; 4 opac+=10; 5 if(document.all){ 6 obj.style.filter="alpha(opacity="+opac+")"; 7 } 8 else {obj.style.opacity=(opac/100);} 9 setTimeout('text

js arguments对象

在javascript中,不需要明确指出参数名,就能访问它们.如: function hi(){if(arguments[0]=="andy"){     return;}alert(arguments[0]);} 用arguments[0]可以访问第一个参数,如此类推. 利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下: function hi(){if(arguments.length==1){    alert(argume

php如何向js函数传参的几种方法

在php编程中向js函数传参可以使用$_POST也可使用$_SESSION[' '],也可用echo语句进行输出 <?php echo "<script>test('$_POST[userid]');</script> ";?>在上面的$_POST['']也可适用$_SESSION[' '];<?php $para = "hello boby!"; echo $para; // www.jbxue.comecho "

js函数传参

js所有函数传参都是按值传递 1>传基本参数类型:被传递的值复制给函数形参 function addMath(num){ num += 10; return num; } var counts = 20; var results = addMath(counts); alert("count="+counts+",result="+results); couts未改变,不是按引用传递的 2>传递obj类型 function setName(obj){ o

java和js中不定项参数调用方法

一.java中 public void test(Object ... args){ for(Object temp:args){ System.out.print(temp); } } 二.js中 用arguments对象 function test(){ for(var i=0;i<=arguments.length;i++){ alert(""+arguments[i]); } }

JS函数传参实例应用:多组图片切换实例

之前的博客有一个图片切换的例子,实现了简单轮播图的点击切换的案例,今天就说一下多组轮播切换,前提是布局差不多,通过函数传参的形式减少代码应用,但是同时还能实现效果.先来看一下之前那个例子的实现图片: 那么今天我来实现两组这样的图片切换,通过传参数来实现,这样分可以减少js代码: <div class="box" id="pic1"> <img src="" /> <span>数量正在加载中--</span

js arguments

了解这个对象之前先来认识一下javascript的一些功能: 其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载.Javascrip中国每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素.arguments.length为函数实参个数,arguments.callee引用函数自身. arguments他的特性和使用方法 特性: arguments对象和Functi