我需要一个可以有任意数量参数的方法。在 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/