【问题标题】:List variables created in anonymous function列出匿名函数中创建的变量
【发布时间】:2011-12-01 07:39:58
【问题描述】:

如果我有一些像下面这样的 Javascript 代码...

(function(){
    var a = 'valueA';
    var b = 'valueB';
    var c = 'valueC';

    //Create a loop that prints the name of all variables created above
    for(var x in ?????){
        console.log(x);
    }
})();

如何打印出已在匿名函数中声明和分配的变量列表。

【问题讨论】:

标签: javascript


【解决方案1】:

正如上面评论中提到的那样,这是不可能的,正如这个链接Javascript Reflection中所解释的那样

【讨论】:

    【解决方案2】:

    如果变量在数组中,这很容易:

    function printVariable() {
       var newArray = [valueA, valueB, valueC....];
       var i;
    
       for (i = 0; i < newArray.length; i++) {
          console.log(newArray(i));
       }
    }
    

    【讨论】:

    • 那么它们不是变量,它们是数组成员,所以这不是一个合适的答案。
    • 当然,但是如果您从变量创建数组,那么这是一个可行的答案。 OFC 这需要知道有多少变量。
    • 你如何向create the array from the variables求婚?您无法访问函数的变量对象,因此无法对其进行迭代。您可以使用 ES5 特性为对象属性创建一个 set 方法,以在局部变量中反映它们的值,但这将是一个尴尬的解决方案。
    • 变量来自某个地方。创建它们时,将它们放入数组中。使用 array.push。如果它们在不同的函数中初始化,OFC 会变得更加复杂,但是它们需要被解析为这个函数,并且可以在开始时被推送到数组中。我承认,这不是最好的解决方案。但我看不出它为什么不起作用。
    • 所以你有一个数组,其中的一些值与变量无关,除了一些只能通过查看源代码才能发现的顺序。 OP是:How do I print out a list of the variables that have been declared and assigned inside the anonymous function.
    猜你喜欢
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2012-07-10
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多