是否可以反映 Javascript 函数的参数?

2024-04-13

是否有可能获取 Javascript 函数的所有参数被写入接受? (我知道所有 Javascript 函数参数都是“可选的”)?如果没有,是否可以获得参数的数量?例如,在 PHP 中,可以使用:

$class = new ReflectionClass('classNameHere');
$methods = $class->getMethods();
foreach ($methods as $method) {
    print_r($method->getParameters());
}

...或者类似的东西,我有一段时间没有接触 PHP,所以上面的例子可能不正确。

提前致谢!

编辑:不幸的是,我必须能够得到论点outside函数主体的...很抱歉缺乏说明,但感谢您当前的答案!


这个新版本还处理粗箭头功能......

args = f => f.toString ().replace (/[\r\n\s]+/g, ' ').
              match (/(?:function\s*\w*)?\s*(?:\((.*?)\)|([^\s]+))/).
              slice (1,3).
              join ('').
              split (/\s*,\s*/);

function ftest (a,
                 b,
                 c) { }

let aftest = (a,
                 b,
                 c) => a + b / c;

console.log ( args (ftest),  // = ["a", "b", "c"] 
              args (aftest), // = ["a", "b", "c"]
              args (args)    // = ["f"]
             );

我认为您正在寻找以下内容:

 function ftest (a,
                 b,
                 c) { }
 var args = ftest.toString ().
              replace (/[\r\n\s]+/g, ' ').
              match (/function\s*\w*\s*\((.*?)\)/)[1].split (/\s*,\s*/);

args 将是 test 参数名称的数组,即 ['a', 'b', 'c']

值为 args 将是参数名称的数组,如果ftest是一个函数。 数组将为空,如果ftest没有参数。的价值argsnull if ftest正则表达式匹配失败,即它不是一个函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以反映 Javascript 函数的参数? 的相关文章

随机推荐

  • 根据特定参数值显示或隐藏 SSRS 列

    我无法根据所选参数值显示 隐藏列 我的报告是如何设置的 参数 ImportStatus ImportStatus 参数有三个值可供选择 M V E 如果我选择 ImportStatus value M 那么我希望报告显示特定列 目前 如果我
  • 如何通过扬声器而不是较弱的耳机扬声器播放音频?

    我正在学习核心音频 由于某种原因 处理图的声音仅通过弱 耳机 播放 当您将设备放在耳边时 而不是通过 iPhone 的常规扬声器播放 这是设置音频会话的代码 但我看不到它在哪里配置音频路由 void setupAudioSession AV
  • PivotTable.js 有条件地更改文本颜色

    所以我正在使用 PivotTable js 它对工作有很大帮助 但现在 我正在尝试获取一个过滤器来根据值更改单元格的颜色或单元格内的字体 例如 如果我的数据集中有一个日期数组 dates N A 4 12 2016 7 9 2024 7 9
  • Python 类输入参数

    我是面向对象编程的新手 我的想法是实现以下课程 class name object name def init self name print name 然后的想法是创建该类的两个实例 person1 name jean person2 n
  • JSF 国际化 f:loadbundle 或通过 faces-config:性能点

    有两种方法可以将属性文件加载到 JSF 2 0 中 全球资源包 全局加载属性文件 以便所有jsf页面都可以访问消息 您可以创建一个 faces config xml 文件并显式声明属性文件 面孔配置 xml
  • 使用java进行HTML解析[重复]

    这个问题在这里已经有答案了 可能的重复 可以解析 HTML 文档并构建 DOM 树 java https stackoverflow com questions 1433250 possible to parse a html docume
  • BufferedImage.getGraphics().drawImage() 改变像素值

    这是一个后续previous https stackoverflow com questions 23707736 strange bufferedimage behaviour with 4bits palette问题 标准推荐的改造方式
  • 基本 Flask:添加有用的功能

    我编写了一个在终端中运行的 python 脚本 并使用 Flask 将其移植到网络上 我已经完成了教程的部分内容 具体来说 http blog miguelgrinberg com post the flask mega tutorial
  • 更改 C# 中多行文本框的特定行

    我无法更改多行文本框的特定字符串 假设多行文本框的第一行是 Hello 第二行是 Bye 但是当我尝试更改第二行的值时 如下所示 textBox1 Lines 1 Good bye 当我使用调试模式看到结果时 它不是 再见 我也读过这个MS
  • 使用 React hooks 对数组进行排序

    我正在使用反应钩子对数组进行简单排序 但它不更新状态 谁能指出我要去这里做什么 import React useState from react import ReactDOM from react dom import styles cs
  • 如何在 Java 中使用 Jython Standalone 安装 Python 库?

    我正在尝试使用 Java 中的 Jython Standalone jar 安装 Python 库 我的代码似乎将 PIP 7 1 2 安装在独立 jar 旁边的文件夹中 但是一旦我尝试使用 PIP 进行自身升级 它就会失败并出现 ZipI
  • 本地放置文件的 jQuery .load() 的跨源问题

    我面临着一个非常基本的 jQuery 编码的恼人的跨源问题 我正在尝试调用 加载本地放置的test 1 html我的主 javascript 文件中的文件 load container load test 1 html function d
  • git add 错误:“致命:malloc,内存不足”

    当我尝试执行 git add 时 出现错误 致命 malloc 内存不足 我想系统显然已经耗尽了内存 但是有没有办法解决这个问题 我还运行 Windows Server 2003 并使用 msysGit 编辑 经过更多搜索后 我认为这是 g
  • 使用相同异常类作为参数的“ except”语句两次

    在Python中 我该如何使用except具有相同异常名称的块两次try except语句 无需将代码包装到另一个语句中try except block 简单的例子 这里each呼叫pages get可能会引发异常 try page pag
  • 是否有 Swift 代码的 Github markdown 语言标识符?

    我在用着https jbt github io markdown editor https jbt github io markdown editor在线文档工具 我想知道是否有一个标识符可以识别 swift 语法元素 谢谢 swift s
  • Map 和 ImmutableMap 的区别

    我在支付网关公司工作 在分析我遇到的代码时 ImmutableMap 对象 我想知道有关的所有细节 它是什么 与地图相比有什么优势 core java 支持 ImmuatbleMap 吗 ImmutableMaps是在Guava中引入的 它
  • php_ini 未设置为 php.ini 位置

    我正在尝试在 OSX 上安装适用于 XAMPP 的 MongoDB PHP 驱动程序 我的终端显示以下内容 configuration option php ini is not set to php ini location 这是什么意思
  • AssertionError:Egg-link ..与ReviewBoard的安装位置不匹配(位于/...)

    AssertionError Egg link home daniel other rb reviewboard does not match installed location of ReviewBoard at home daniel
  • 使用 cout << 运算符时,如何用前导零填充 int? [复制]

    这个问题在这里已经有答案了 I want cout输出一个带有前导零的 int 所以该值1将被打印为001和价值25打印为025 我怎样才能做到这一点 通过以下内容 include
  • 是否可以反映 Javascript 函数的参数?

    是否有可能获取 Javascript 函数的所有参数被写入接受 我知道所有 Javascript 函数参数都是 可选的 如果没有 是否可以获得参数的数量 例如 在 PHP 中 可以使用 class new ReflectionClass c