【问题标题】:How to know what parameters a function expects如何知道函数需要哪些参数
【发布时间】:2022-12-03 01:42:07
【问题描述】:

我有一个像这样的功能:

function myFunction(params) {
  // TODO: something
  console.log(params.message)
}

我需要知道 myFunction 函数在 params 对象中期望的所有键。这可能吗?

我试过使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments 但没有成功

【问题讨论】:

  • 你在哪里找到的功能?你能告诉我们它的样子吗?
  • 要了解此类信息,您需要某种形式的类型系统。 Typescript 和 Flow 是流行的例子。
  • 你需要在运行时吗?或者只是在写代码的时候?
  • 我猜你可以将 new Proxy({}, { get(_, key){ console.log("Get", key); }, set(_, key, value){ console.log("Set", key, value); }, has(_, key){ console.log("Has", key); }, apply(_, thisArg, args){ console.log("Call", thisArg, args); } }) 传递给 myFunction 并查看它记录的内容,直到它抛出错误。参见Proxy constructor

标签: javascript node.js function object parameters


【解决方案1】:

toString 会有所帮助,但除此之外你不知道。 JavaScript 不会在运行时存储类型信息(TypeScript 也不会)

function myFunction(params) {
  // TODO: something
  console.log(params.message)
}

console.log(myFunction.toString())
console.log(eval)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    相关资源
    最近更新 更多