javascript - 是否有 C# 'params' 的 JavaScript 等效项?

标签 javascript

我需要一个可以有任意数量参数的方法。在 C# 中,我们有 params 语句。我们在 JavaScript 中有类似的东西吗?

最佳答案

arguments 集合,其中包含传递给函数的所有参数。

a) 无需在函数签名中指定“可选”参数,b) 任何函数都接受任意数量的参数。

function foo() {
  console.log(arguments);
}

foo(1,2,3,4);  // logs [1, 2, 3, 4]

同样,也不需要在函数调用中提供“必需的”参数:

function foo(a, b, c, d) {
  console.log(arguments);
}

foo(1,2);  // logs [1, 2]

任何在签名中命名但未在函数调用中提供的参数都将未定义

请注意,arguments 的行为类似于数组,但从技术上讲,它不是数组。例如,您可以调用 arguments[0],但不能调用 arguments.slice()。您可以使用 Array 原型(prototype)来解决这个问题:

Array.prototype.slice.call(arguments, 1, 2);

所谓rest parameter ... 是一种新的 (ES6+) 语言,它使可变参数函数的使用更加舒适。 @ArunCM's answer解释一下。

关于javascript - 是否有 C# 'params' 的 JavaScript 等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310066/

相关文章:

javascript - 如何在中间居中单击并拖动滚动条

javascript - Highcharts 导出为 svg

javascript - HTML/Javascript/jquery 函数按钮在 TextArea 中的每行末尾放置逗号

javascript - 不确定 javascript 中异步和回调的使用

javascript - 如何在 javascript 中解析 yyyy-MM-dd HH :mm:ss. SSS 格式日期?

javascript - 箭头函数 vs 胖箭头函数

javascript - 单击背景时防止隐藏自定义模式

javascript - 回调和操作数组但返回未定义

javascript - 迁移需要更改 meteor 集合架构内的属性类型吗?

javascript - Google Maps API - 沿纬度/经度之间的路线获取点