📅  最后修改于: 2023-12-03 15:11:51.098000             🧑  作者: Mango
在编写 JavaScript 函数时,有时可能需要确定该函数所需的参数个数。JavaScript 提供了多种方式来获取函数参数个数,下面是一些常用的方法。
每个 JavaScript 函数都有一个内置对象 arguments
,它是一个类数组对象,包含传递给函数的所有参数。可以使用 arguments.length
属性来获取参数个数。
function foo(a, b, c) {
console.log(arguments.length);
}
foo(); // 0
foo(1); // 1
foo(1, 2); // 2
foo(1, 2, 3); // 3
可以使用函数的 .length
属性来获取函数定义时声明的参数个数。如果函数声明时使用了默认值、剩余参数或扩展操作符,则可能会得到不同的结果。
function foo(a, b, c) {}
console.log(foo.length); // 3
function bar(a, b = 0, ...rest) {}
console.log(bar.length); // 1
ES6 提供了 Reflect
对象,其中的方法 Reflect.ownKeys()
可以返回对象自身的所有属性名,包括函数的参数列表。
function foo(a, b, c) {}
console.log(Reflect.ownKeys(foo)); // ["length"]
也可以使用正则表达式来解析函数的源代码,得到参数列表。
function foo(a, b, c) {}
const source = foo.toString();
const pattern = /\((.*?)\)/;
const result = pattern.exec(source);
console.log(result[1].split(',').length); // 3
以上是 JavaScript 中获取函数参数个数的常用方法,你可以根据自己的需要来选择合适的方法。