如何在javascript中获取变量的名称?

时间:2012-06-13 23:10:03

标签: javascript variables

  

可能重复:
  Determine original name of variable after its passed to a function
  Get the reference name of an object?

不完全确定如何解释这一点。我想在对象本身中获取变量名的字符串值。

例如:

var MyObject = function(){
  var that = this;

  that.alertMyName = function(){
    var name_of_instance = that.__name__;
    alert(name_of_instance); //hoping to retreive a string containing 'var1'?
  }

};

var var1 = new MyObject();
var1.alertMyName();

3 个答案:

答案 0 :(得分:3)

无法确定引用对象的任何变量的名称,而不是在此特定示例中。想想你有很多变量引用同一个对象的情况 - 在这种情况下你期望返回什么?如果无变量完全引用该对象,该怎么办? (考虑表达式new MyObject().alertMyName() - 该对象的名称应该是什么?)

如果要为对象指定名称,请将其明确指出:

var MyObject = function(name){
  var that = this;

  that.alertMyName = function(){
    alert(name);
  }

};

var var1 = new MyObject("var1");
var1.alertMyName();

答案 1 :(得分:0)

如果你做了

for (x in obj){}

在javascript中的一个对象上,x保存了对象属性/变量名的名称,我相信你可以通过这种方式得到你想要的东西:)

答案 2 :(得分:0)

哦,当然,这很容易(因为几乎不可能)。只需打印出代码,然后读入函数调用,然后记下变量名。

在代码中变得有点复杂,但在边缘情况下仍然可行。您必须解析调用该函数的文档,该文档需要明确知道该文档所在的位置。使用$.ajax调用,您可以将整个调用脚本或页面加载到变量中,然后使用滑动窗口进行解析,直到找到使用了变量名称的函数调用。但是,您必须确保找到的函数调用是与当前实例相关的函数。