普通函数动态参数 和 箭头函数的动态参数有什么区别?【热度: 927】

关键词:JS函数动态参数

普通函数和箭头函数在处理动态参数方面有以下区别:

  1. 普通函数的动态参数:
    • 在普通函数中,可以使用 arguments 对象来访问传递给函数的所有参数,无论是否定义了具名参数。arguments 是一个类数组对象,可以通过索引访问每个参数的值。
    • 普通函数可以使用剩余参数语法(Rest parameters)来声明动态参数,通过三个点(...)和一个参数名表示。剩余参数会被收集成一个真正的数组,可以直接使用数组的方法和属性对参数进行操作。

示例:

function sum(a, b, ...rest) {
  console.log(a, b); // 输出前两个参数
  console.log(rest); // 输出剩余的动态参数,作为数组
}

sum(1, 2, 3, 4, 5); // 输出: 1 2, [3, 4, 5]
  1. 箭头函数的动态参数:
    • 箭头函数不具有自己的 arguments 对象。在箭头函数中,无法直接访问传递给函数的所有参数的类数组对象。
    • 箭头函数可以使用剩余参数语法来声明动态参数,与普通函数相同。剩余参数会被收集成一个真正的数组,可以直接使用数组的方法和属性对参数进行操作。

示例:

const sum = (a, b, ...rest) => {
  console.log(a, b); // 输出前两个参数
  console.log(rest); // 输出剩余的动态参数,作为数组
}

sum(1, 2, 3, 4, 5); // 输出: 1 2, [3, 4, 5]

总结:

  • 普通函数和箭头函数都可以接受动态参数。
  • 普通函数可以使用 arguments 对象访问所有参数,也可以使用剩余参数语法将参数收集成数组。
  • 箭头函数没有自己的 arguments 对象,无法直接访问所有参数,但可以使用剩余参数语法将参数收集成数组。