js arguments对象的由来和用法

在JavaScript中,arguments对象是函数内部的内置对象,用于访问传递给函数的参数。它的由来是为了解决JavaScript中函数参数的不确定性问题。
由于JavaScript允许函数具有可变数量的参数,因此无法通过固定数量的参数来传递所有值。为了解决这个问题,JavaScript引入了arguments对象。它是一个类数组对象,包含了传递给函数的参数集合。通过arguments对象,可以在函数内部访问所有传递的参数,而无需明确指定参数的名称。arguments对象在函数内部自动可用,不需要显式创建。它的属性包括callee(指向当前执行的函数)、length(参数的数量)等。可以使用索引来访问特定的参数,例如arguments[0]表示第一个参数,arguments[1]表示第二个参数,以此类推。通过使用arguments对象,可以在函数内部灵活地处理变长参数,并根据需要传递和访问参数值。这对于编写可重用和灵活的函数非常有用,特别是当不确定将会有多少参数传递给函数时。
以下是一个使用arguments对象的JavaScript函数的例子:
function myFunction() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}

myFunction(1, 2, 3, 4); // 输出:1 2 3 4

在上面的例子中,myFunction是一个接受任意数量参数的函数。通过使用arguments对象,我们可以遍历所有传递给函数的参数,并将它们逐个输出到控制台。

由于JavaScript允许函数有不定数⽬的参数,所以我们需要⼀种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来。
arguments对象包含了函数运⾏时的所有参数,arguments[0]就是第⼀个参数,arguments[1]就是第⼆个参数,以此类推。这个对象只有在函数体内部,才可以使⽤。

var f = function(one) {
console.log(arguments[0]); //1
console.log(arguments[1]); //2
console.log(arguments[2]); //3
}
f(1, 2, 3);
arguments对象除了可以读取参数,还可以为参数赋值(严格模式不允许这种⽤法)
var f = function(a, b) {
arguments[0] = 3; //对a重新赋值
arguments[1] = 2; //对b重新赋值
return a + b;
}
console.log(f(1, 1)); //5
可以通过arguments对象的length属性,判断函数调⽤时到底带⼏个参数。
var f = function() {
return arguments.length;
}
console.log(f(1, 2, 3)); //3
console.log(f(1, 2)); //2
console.log(f(1)); //1
console.log(f()); //0

相关推荐

  1. js arguments对象由来

    2024-01-17 08:48:08       29 阅读
  2. 1. 面向对象由来

    2024-01-17 08:48:08       10 阅读
  3. PHP类对象概念及

    2024-01-17 08:48:08       10 阅读
  4. GenericObjectPool对象池化介绍与

    2024-01-17 08:48:08       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 08:48:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 08:48:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 08:48:08       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 08:48:08       20 阅读

热门阅读

  1. vue的sync语法糖的使用

    2024-01-17 08:48:08       29 阅读
  2. 正则表达式2 常见模式

    2024-01-17 08:48:08       39 阅读
  3. 正则表达式

    2024-01-17 08:48:08       31 阅读
  4. UML2.0 14种图简单介绍

    2024-01-17 08:48:08       28 阅读
  5. Js高级语法

    2024-01-17 08:48:08       26 阅读
  6. 面试题总结-MQ总结

    2024-01-17 08:48:08       33 阅读
  7. cmake构建动态库实例(cmakelist)

    2024-01-17 08:48:08       35 阅读