代码之家  ›  专栏  ›  技术社区  ›  crsuarezf

Javascript getVariableName

  •  2
  • crsuarezf  · 技术社区  · 14 年前

    这是我的第一篇文章。

    var someFunction = function(someText){alert(someText);}
    function SomeClassFunction(){
         this.aClassFunction = someFunction;
    }
    
    var aVariableName = new SomeClassFunction();
    

    在HTML代码中,假设我有下一段代码。

    <html>
      <head>
        <title></title>
      </head>
      <body>
        <div onclick="aVariableName.aClassFunction('Some text to show in alert');">
        </div>
      </body>
    </html>
    

    然后,正如您可能注意到的,onclick事件使用我以前创建的aVariableName,但因为我首先创建变量的名称,然后在代码中附加该名称,因为我知道aVariableName是该对象的名称。我想做的或实现的是在html中创建上面的文本,而不知道特定对象的变量名。我在网上冲浪,但不幸的是,我什么也没找到。

    3 回复  |  直到 14 年前
        1
  •  0
  •   jasper johnz    14 年前

    我不知道如何从代码中获取变量的名称,如果不做大量的解析工作,会变得很混乱,我会为此向某人开枪。

    var someValue;
    var foo = function() { someValue; }
    alert((foo + '')); // this is now a string, use substr to extract variable name
    

    someElement.onclick = someFunction 因此,如果您所做的只是设置一个事件处理程序,那么实际上不需要知道变量的名称。

        2
  •  0
  •   David Wolever    14 年前

    一般来说,不,你不能得到一个特定变量的名称或它的“id”。

    如果你真的想这样做的话,可能会做一些不好的事情,除了异常和堆栈跟踪来获取这些信息,但我不知道如何做到这一点。

    编辑 id 内置:

    >>> x = {}
    >>> y = z = {}
    >>> (id(x), id(y), id(z))
    (123, 567, 567)
    
        3
  •  0
  •   flatline    14 年前

    在JavaScript中,有两件事可以促进元编程: 评估

    aVariableName.aClassFunction
    

    aVariableName["aClassFunction"]