📜  获取函数参数计数javascript(1)

📅  最后修改于: 2023-12-03 15:11:51.098000             🧑  作者: Mango

获取函数参数个数(JavaScript)

在编写 JavaScript 函数时,有时可能需要确定该函数所需的参数个数。JavaScript 提供了多种方式来获取函数参数个数,下面是一些常用的方法。

1. arguments.length

每个 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
2. 函数的 .length 属性

可以使用函数的 .length 属性来获取函数定义时声明的参数个数。如果函数声明时使用了默认值、剩余参数或扩展操作符,则可能会得到不同的结果。

function foo(a, b, c) {}
console.log(foo.length);  // 3

function bar(a, b = 0, ...rest) {}
console.log(bar.length);  // 1
3. ES6 的 Reflect API

ES6 提供了 Reflect 对象,其中的方法 Reflect.ownKeys() 可以返回对象自身的所有属性名,包括函数的参数列表。

function foo(a, b, c) {}
console.log(Reflect.ownKeys(foo));  // ["length"]
4. 正则表达式

也可以使用正则表达式来解析函数的源代码,得到参数列表。

function foo(a, b, c) {}
const source = foo.toString();
const pattern = /\((.*?)\)/;
const result = pattern.exec(source);
console.log(result[1].split(',').length);  // 3

以上是 JavaScript 中获取函数参数个数的常用方法,你可以根据自己的需要来选择合适的方法。