`

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 的这种限制。

分享到:
评论

相关推荐

    PHP 可变参数

    1. **函数重载** - 可变参数可以模拟函数重载,允许一个函数根据传入的参数数量和类型执行不同的逻辑。 2. **参数收集** - 在需要将所有参数作为数组处理时,可变参数非常有用,比如构建查询字符串、处理表单数据等...

    函数参数:可变参数

    在某些情况下,我们可能需要编写函数来处理不确定数量的输入参数,这时就需要用到可变参数。本文将深入探讨可变参数的概念、用途以及如何在不同编程语言中实现它。 首先,让我们理解什么是可变参数。在传统的函数...

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

    总的来说,JavaScript提供的参数可变函数功能是非常灵活和强大的,它使得函数调用更加动态,减少了需要定义多个重载函数的需要。然而,在实际的项目中,我们也应当谨慎使用可变参数函数,因为过度依赖这种功能可能会...

    JavaScript重载函数实例剖析_.docx

    在此示例中,函数`add`接受可变数量的参数。如果传递了第三个参数`limitNumber`,则计算`a + b`的结果,并检查是否小于`limitNumber`。如果小于,则返回`limitNumber`;否则返回`a + b`的值。 ##### 2.2 基于参数...

    JavaScript函数重载操作实例浅析

    然而,在JavaScript中,由于函数参数是可选的,并且在函数内部是通过一个类数组对象arguments来访问的,JavaScript并没有在语言层面上直接支持传统的函数重载。 在面试中,面试官询问了关于JavaScript函数重载的...

    Javascript中arguments用法实例分析

    若不使用arguments对象,则需要为每一个参数数量重载一个函数,这在JavaScript中是不可行的,因为JavaScript不支持方法重载。通过arguments对象,我们可以轻松地处理不同数量的参数,如下代码所示: ```javascript ...

    JavaScript中常用的函数类型.pdf

    总结,JavaScript中的函数是灵活多变的,可变函数的参数不固定,匿名函数提供了一种简洁的代码表达方式,而动态函数则允许在运行时创建函数,增强了代码的动态性。理解并熟练运用这些函数类型对于编写高效、灵活的...

    Javascript 面向对象 重载

    利用`arguments`对象可以获取到传递给函数的所有参数信息,然后根据参数的数量、类型来决定执行哪段代码逻辑,这样就可以在一定程度上模拟函数重载。 在使用`arguments`对象实现重载的示例中,开发者可以编写一个...

    不定参数函数

    在C++中,不定参数通常通过模板和重载来实现,或者使用`std::initializer_list`或`std::va_args`(可变参数模板)。 不定参数函数的使用提高了代码的灵活性和可复用性,使得我们能够编写更加通用的函数,处理各种...

    javascript 面向对象编程 function是方法(函数)

    通过`arguments`对象和动态参数传递,JavaScript可以实现类似函数重载的效果,尽管这不是语言本身提供的特性。理解并熟练运用这些机制,可以帮助开发者编写更加清晰、可维护的代码,提高程序的可读性和可扩展性。

    详解JavaScript中常用的函数类型

    此外,JavaScript中虽然没有函数重载的概念,但可变参数的使用在某种程度上可以模拟重载的效果,使得函数能够以不同的方式响应不同数量的参数。 在JavaScript中,函数本身也是对象,它们可以赋值给变量,可以作为...

    javascript函数中参数传递问题示例探讨

    1. 函数参数作为数组传递:在JavaScript中,函数接收的参数并不是直接作为单独的变量,而是被组织成一个名为arguments的类数组对象中。这意味着无论你在调用函数时传递了多少参数,函数内部都通过这个arguments对象...

    JavaScript王者归来part.1 总数2

     6.2.2.3 一个使用Arguments对象模拟函数重载的例子   6.2.3 参数类型匹配--一个利用arguments实现函数重载机制的例子   6.3 函数的调用者和所有者   6.3.1 函数的调用者   6.3.2 函数的所有者--一个为函数...

    妙用缓存调用链实现JS方法的重载

    总的来说,虽然JavaScript没有直接支持方法重载的语法特性,但是通过`arguments`对象、闭包和`apply`方法的合理运用,我们仍然可以在JavaScript中实现方法重载的某些特性。这样的实现方式在逻辑上更加清晰,代码的可...

    javascript匿名函数实例分析

    对于参数的处理,JavaScript允许函数的参数数量不固定,即所谓的参数可变性。函数不会对传入的参数个数或类型进行检查,如果传入的参数过多或过少,或是参数类型不正确,也不会产生错误。在函数体内,可以通过...

    js中函数调用的两种常用方法使用介绍

    由于JavaScript不支持函数重载,函数名abc2不能重复定义以接受不同数量的参数。但是,通过使用arguments对象,我们可以在一个函数内处理任意数量的参数。 在实践中,这两种函数调用方法非常常用,直接调用适用于...

    C++函数详解

    6. **默认参数(Default Arguments)**:在定义函数时可以为某些参数提供默认值,使得在调用时可以省略这些参数。 7. **变长参数(Variable Length Argument List)**:使用`...`来表示函数可以接受任意数量的参数...

    javascript (2).docx

    Function用于定义函数,可以使用arguments对象获取函数参数,但函数没有重载。 变量的作用域在JavaScript中分为全局作用域和局部作用域,全局变量在整个脚本中都可访问,而局部变量只在其定义的函数或块级作用域内...

    Javascript中的arguments与重载介绍

    因为语言上的设计错误,arguments可以被当成一个数组。 代码如下: function zero () {  console.log(arguments[0]);...因为这里的arguments的可变参数,我们可以利用这个有意思的东西来做一些有意思的事

Global site tag (gtag.js) - Google Analytics