如何返回类的实例名称?

时间:2017-07-08 03:36:13

标签: javascript

我希望SomeClass的getName()方法返回实例名称。在这种情况下" SomeInstance。"这可能吗,怎么做?

class SomeClass {
  getName() {
    return this.constructor.name;
  }
}

var SomeInstance = new SomeClass();

document.write(SomeInstance.getName());

更新

这就是诀窍。

getName() {
  for (var instance in window){
        if (window[instance] === this){
            return instance;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果你的变量在窗口范围内,那么工作的JS会在这里弄乱:https://jsfiddle.net/gdxo0sjn/

注意:由于Stackoverflow上的跨域安全错误,嵌入式代码段无法正常工作(代码段托管在其他域上)。



function getVariableName(instance)
{
  for(obj in window)
   if (window[obj]===instance) return obj;
  return undefined;
}

class SomeClass {
  getName() {
    return this.constructor.name;
  }
}

var SomeInstance = new SomeClass();
console.log(getVariableName(SomeInstance));




答案 1 :(得分:0)

找到了这个

getName() {
  for (var instance in window){
        if (window[instance] === this){
            return instance;
        }
    }
 }