【问题标题】:How to get variables names inside a javascript function如何在 javascript 函数中获取变量名称
【发布时间】:2021-08-13 23:17:58
【问题描述】:

我想在这个例子中得到“a,b”https://jsfiddle.net/8dw9e5k7/,而不是得到别的东西。有可能吗?

    function test() {

        a = 5;
        b = 10;
        try {
          var variables = ""
          for (var name in this)
          variables += name + "\n";
          alert(variables);
        } catch(e) {
          alert(e.message)
        }
        
    }

    test();

【问题讨论】:

  • 除非您将函数作为字符串并解析它,否则无法获取实际函数的使用变量。顺便说一句,为什么将this 与全局变量一起使用?
  • 如有必要,您可以将变量放入函数的对象中

标签: javascript


【解决方案1】:

在函数中分配不存在的变量会使变量全局,这意味着附加到window 对象。这就是为什么您的代码有些工作并显示变量以及许多其他内容的原因,因为this 指的是window

无法以干净的方式转储附加到window 的您自己的变量(仍然存在一些技巧,包括使用iframe 创建新的window 并将其与当前的window 进行比较,检查此answer如果你有兴趣)

现在,如果您希望 this 引用当前函数的词法范围,那么情况并非如此,您根本无法以编程方式检索它。

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2018-10-09
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多