`

JS arguments 对象 (JS方法可变参数及模拟函数重载)

 
阅读更多

arguments 对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。

 

function a(x,y,z){
	  console.log(arguments[0])   //表示第一个参数x
	  console.log(arguments[1])  //表示第一个参数y
      console.log(arguments[2])   //表示第三个参数,前提是在调用函数时传入了三个参数 
      console.log(arguments.length)  //表示实际传入参数的个数
      arguments.callee(1,2,3)   //调用自身 
}

 

模拟函数重载

用 arguments 对象判断传递给函数的参数个数,即可模拟函数重载:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}

doAdd(10);	//输出 "15"
doAdd(40, 20);	//输出 "60"

当只有一个参数时,doAdd() 函数给参数加 5。如果有两个参数,则会把两个参数相加,返回它们的和。所以,doAdd(10) 输出的是 "15",而 doAdd(40, 20) 输出的是 "60"。

虽然不如重载那么好,不过已足以避开 ECMAScript 的这种限制。

分享到:
评论

相关推荐

    JS函数动态传递参数的方法分析【基于arguments对象】

    本文实例讲述了JS函数动态传递参数的方法。分享给大家供大家参考,具体如下: js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参。 function box() { return arguments[0]+' | ...

    javascript 利用arguments实现可变长参数

    javascript arguments解释,实现可变长参数。 在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一、可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西。 先来看看应用...

    理解Javascript函数形式参数与arguments

    理解Javascript函数形式参数与arguments

    arguments对象的使用

    在函数定义时没有形参名称时,向函数传递参数的使用方法。 实例演示了arguments对象的使用方法。

    js中方法重载如何实现?以及函数的参数问题

    但每一个函数都有一个特殊的参数arguments,利用它可以实现方法的重载。 例如: 代码如下: function Add(firstnumber,sencondnumber) { return firstnumber+sencondnumber; } 只能处理两个参数,如果有多个参数,...

    Javascript中的arguments对象

    但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。 arguments[i]: 获得传入的下标为i的参数值 arguments.length: 获得传入的参数个数! 重载:  程序...

    javascript中通过arguments参数伪装方法重载

    但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert(“示例代码”); } fun(“小明”, 100, true);//...

    Javascript学习笔记之函数篇(四):arguments 对象

    JavaScript中arguments函数对象是该对象代表正在执行的函数和调用它的函数的参数。JavaScript 函数中 arguments 为特殊对象,无需明确指出参数名,就能访问它们。

    【JavaScript源代码】JavaScript中arguments的使用方法详解.docx

     说回arguments,它是js中函数内置的一个对象,而执行函数方法的实参中值都存储在arguments中; 要想获取到这些实参,就需要像数组一样,用下标/索引来定位到每个值上面,但是又不能说它是一个数组,因为它里面...

    JavaScript中如何通过arguments对象实现对象的重载

    js 中不存在函数的重载,但却可以通过arguments对象实现对象的重载,下面有个不错的示例,大家可以参考下

    JS函数重载的解决方案

    在面向对象的编程中,很多语言都支持函数重载,能根据函数传递的不同个数、类型的参数来做不同的操作,JS对它却不支持,需要我们额外做些小动作。 在JS的函数执行上下文中有一个名为arguments的有意思的变量,它以...

    javascript函数重载解决方案分享

    JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数...办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。 1.根据参数

    JavaScript中arguments和this对象用法分析

    js函数不介意定义多少参数,也不在乎传递进来多少参数,也就是说,即使定义的函数只接收2个参数,在调用时候也未必传递2个参数,因为js的函数参数在内部使用一个数组表示的,在函数体内可以通过arguments对象访问此...

    js arguments对象应用介绍

    利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下: 代码如下: function hi(){ if(arguments.length==1){ alert(arguments[0]); } else if(arguments.length==2){ a

    JavaScript参数个数可变的函数举例说明

    JavaScript允许一个函数传递个数可变的参数,因为有arguments这个内置对象,它一个函数传递的所有参数的数组

    javascript内置对象arguments详解

    所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的。所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。他不是一个数组,如果用typeof ...

    JS中使用变量保存arguments对象的方法

    迭代器(iterator)是...分析:由于values函数需要接收任意多个参数,这里就需要用到上一节讲到的构建可变参数的函数的方法。然后里面的迭代器对象来遍历arguments对象的元素。 初步编码 function values(){ var i=

Global site tag (gtag.js) - Google Analytics