javascript - 获取函数参数长度,包括默认参数

标签 javascript node.js ecmascript-6

如果您使用 Function.length 属性,您可以获得函数期望的参数总数。

但是,根据文档(以及实际尝试),它不包括默认参数。

This number excludes the rest parameter and only includes parameters before the first one with a default value - Function.length

我是否有可能以某种方式(从函数外部)获得一个包含默认参数的计数?

最佳答案

也许你可以自己解析它,比如:

function getNumArguments(func) {
    var s = func.toString();
    var index1 = s.indexOf('(');
    var index2 = s.indexOf(')');
    return s.substr(index1 + 1, index2 - index1 - 1).split(',').length;
}

console.log(getNumArguments(function(param1, param3 = 'test', ...param2) {})); //3

关于javascript - 获取函数参数长度,包括默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899083/

相关文章:

javascript - 文档上需要removeEventListener吗?

javascript - 另一个 javascript 文档中的年度事件

javascript - 如何插入以及是否为 webstorm 中的变量定义

node.js - 如何使用 axios-mock-adapter 使用路由参数模拟 http 请求

asp.net - 将 Node.JS 与 ASP.NET WebForm 和 Socket.IO 结合使用

javascript - 使用扩展参数连接字符串的最有效方法

javascript - 递归函数和 setTimeout

javascript - Owl Carousel 2 自定义导航

javascript - 使用 promise /构造 promise 链时,如何设计/集成错误处理?

phantomjs - 如何在 PhantomJS 中使用 ES6