欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js学习之Arguments对象...rest参数实例

程序员文章站 2022-06-04 08:38:47
arguments 是一个对应于传递给函数的参数的类数组对象 描述 arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引...

arguments 是一个对应于传递给函数的参数的类数组对象


描述

arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数的条目,第一个条目的索引从0开始。例如,如果一个函数传递了三个参数,你可以以如下方式引用他们:

arguments[0]
arguments[1]
arguments[2]

参数也可以被设置:

arguments[1] = 'new value';

arguments对象不是一个 array 。它类似于array,但除了length属性和索引元素之外没有任何array属性。例如,它没有 pop 方法。但是它可以被转换为一个真正的array:

var args = array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);

// es2015
const args = array.from(arguments);

属性

arguments.callee

指向当前执行的函数。

arguments.caller

指向调用当前函数的函数。

arguments.length

指向传递给当前函数的参数数量。

arguments[@@iterator]

返回一个新的array迭代器对象,该对象包含参数中每个索引的值。


…rest参数

es5写法

script函数允许接收任意个参数,于是我们就不得不用arguments来获取所有参数:

function foo(a, b) {
    var i, rest = [];
    if (arguments.length > 2) {
        for (i = 2; i