0

可能重复:
在传递给函数后确定变量的原始名称
获取对象的引用名称?

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

例如:

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();
4

3 回答 3

3

无法确定引用对象的任何变量的名称,无论如何在此特定示例中都没有。想想你有许多变量引用同一个对象的情况——在这种情况下你希望返回什么?如果根本没有变量引用该对象怎么办?(考虑表达式new MyObject().alertMyName()——该对象的名称应该是什么?)

如果你想给一个对象一个名字,让它明确:

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

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

};

var var1 = new MyObject("var1");
var1.alertMyName();
于 2012-06-13T23:16:27.220 回答
0

如果你做一个

for (x in obj){}

在 javascript 中的对象上,x 包含对象属性/变量名称的名称,我相信您可以通过这种方式获得所需的内容:)

于 2012-06-13T23:12:28.093 回答
0

哦,当然,这很容易(实际上是不可能的)。只需打印出代码,然后向下读取函数调用,然后记下变量名称。

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

于 2012-06-14T00:25:57.483 回答