【问题标题】:How to find the variables defined in a function如何查找函数中定义的变量
【发布时间】:2010-12-25 06:08:19
【问题描述】:

假设我有一个很长的 javascript 函数,例如

function test() {
    var x; 
    var a;
    ...
    ...
    ...
    ...
    ...
}

有什么方法可以让函数本身告诉我到目前为止定义了哪些变量。

function test() {
   var x; 
   var a;
   ...
   ...
   ...
   ...
   ... // bit of code that would say to me: x and a. 
}

【问题讨论】:

  • 只是好奇,你在哪里需要这个?谢谢
  • javascript 代码是自动生成的。如果我知道我的问题的答案,我将能够在函数末尾添加一些代码,以验证代码生成器所做的一些假设。
  • 希望这是可能的。哦,我真希望。
  • 您需要知道所有定义的变量,还是只知道是否定义了特定变量?后者可以完成,第一个AFAIK不行。
  • @Adrian:我不认为它可以,你无法获取执行上下文的变量对象来执行in 操作,如果你检查名称以查看其值是否为undefined,这并没有区分根本没有var 与拥有var 但它具有undefined 的值(因为您从未分配给它,或者在某些时候明确分配了undefined)。如果可能的话,我很想知道怎么做,那太好了。

标签: javascript variables function introspection


【解决方案1】:

不,不是不依赖Function#toString,然后对结果进行字符串处理,不推荐。 Function#toString 由大多数浏览器实现,为您提供函数的源代码(有或没有 cmets,具体取决于),但规范没有标准化(即使是最新的),我不会在生产代码中使用它。

【讨论】:

  • 同意我不想依赖 .toString 感谢您的帮助
【解决方案2】:

这需要反思。但是 Javascript 没有太多的反射支持。我认为你做不到,除了这样:解析你自己的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    相关资源
    最近更新 更多